Las listas generalizadas se pueden representar con la siguiente arquitectura
de nodo :
+-------------------------------------------+
| TAG | DATA | LINK |
+-------------------------------------------+
donde TAG = 0 si es un elemento atomo y TAG = 1 si es un elemento lista.
+---+ +-----------+ +-----------+
A | *-----> | 1 | * | --------------------------------------> | 1 | * | 0 |
+---+ +-----|-----+ +-----|-----+
| |
| |
| +-----------+ +-----------+ | +-----------+ +-----------+
+------> | 0 | a | *------> | 0 | b | 0 | +------> | 1 | * | *------> | 0 | e | 0 |
+-----------+ +-----------+ +-----|-----+ +-----------+
|
|
| +-----------+ +-----------+
+------> | 0 | c | *------> | 0 | d | 0 |
+-----------+ +-----------+
+-----> +---+ +-----------+ +-----------+
| A | *-----> | 0 | a | -------> | 1 | * | 0 |
| +---> +---+ +-----------+ +-----|-----+
| | |
| | |
| | | +-----------+ +-----------+
| | +----------> | 0 | b | *------> | 0 | c | 0 |
| | +-----------+ +-----------+
| +-------------------------------------------+
| |
+--------------------------+ |
| |
+---+ +-----|-----+ +-----|-----+ +-----------+
B | *-----> | 1 | * | --|----> | 1 | * | -------> | 1 | 0 | 0 |
+---+ +-----------+ +-----------+ +-----------+
+------------------------------------------+
| |
| |
| +---+ +-----------+ +-----|-----+
+---> C | *-----> | 0 | a | --|----> | 1 | * | 0 |
+---+ +-----------+ +-----------+
+---+
D | 0 |
+---+
El ejemplo 1 muestra una lista generalizada normal.
El ejemplo 2 muestra una lista generalizada compartida, la A.
El ejemplo 2 muestra una lista generalizada recursiva, la C.
El diseno de los nodos de esta aplicacion puede ser :
La segunda alternativa se obtiene factoreando por la
primer variable,
luego por la segunda variable,
luego por la tercer variable y asi siguiendo, hasta agotar todas las
variables.
+---------------------------------------------------------------------+
| COEF | EXPOX | EXPOY | EXPOZ | LINK |
+---------------------------------------------------------------------+
+----------------------------------------------------------+
| TAG | COEF | EXPO | LINK |
+----------------------------------------------------------+
En el dibujo que sigue omitiremos el campo TAG por simplicidad.
Utilizaremos, ademas, un nodo cabeza por cada polinomio basico,
y el campo COEF almacenaremos la variable factoreada, siendo, en este caso,
el campo EXPO irrelevante.
+-----------+ +-----------+ +-----------+
P(x,y,z) --> | z | - | ------->| * | 2 | *--------------------------------------------------------------> | * | 1 | 0 |
+-----------+ +-----------+ +-|---------+
| |
V V
+-----------+ +-----------+ +-----------+ +-----------+ +-----------+ +-----------+
| y | - | *------> | * | 3 | *------> | * | 2 | 0 | | y | - | *------> | * | 4 | *------> | * | 4 | 0 |
+-----------+ +-|---------+ +-|---------+ +-----------+ +-|---------+ +-----------+
| | | |
| V | V
| +-----------+ +-----------+ | +-----------+ +-----------+
| | x | - | *------> | 3 | 8 | 0 | | | x | - | *------> | 2 | 0 | 0 |
| +-----------+ +-----------+ | +-----------+ +-----------+
| |
V V
+-----------+ +-----------+ +-----------+ +-----------+ +-----------+ +-----------+
| x | - | *------> | 1 |10 | *------> | 2 | 8 | 0 | | x | - | *------> | 1 | 4 | *------> | 6 | 3 | 0 |
+-----------+ +-----------+ +-----------+ +-----------+ +-----------+ +-----------+