Lista enlazada generalizada

Una Lista Enlazada Generalizada L, se define como una secuencia finita de n>=0 elementos, l 1 , l 2 , l 3 , l 4 , …, l n , tal que l i son un átomo o la lista de átomos. Así
L = (l 1 , l 2 , l 3 , l 4 , …, l n )
donde n es el número total de Nodes en la lista.

Para representar una lista de elementos, existen ciertas suposiciones sobre la estructura del Node.

  • Flag = 1 implica que existe un puntero hacia abajo
  • Flag = 0 implica que existe el siguiente puntero
  • Datos significa el átomo
  • El puntero hacia abajo es la dirección del Node que está abajo del Node actual
  • El siguiente puntero es la dirección del Node que se adjunta como el siguiente Node

¿Por qué una lista enlazada generalizada?
Las listas vinculadas generalizadas se utilizan porque, aunque la eficiencia de las operaciones polinómicas que utilizan la lista vinculada es buena, la desventaja es que la lista vinculada no puede utilizar ecuaciones polinómicas de múltiples variables de manera eficiente. Nos ayuda a representar polinomios de múltiples variables junto con la lista de elementos.

Estructura típica ‘C’ de la lista enlazada generalizada

typedef struct node {
    char c;                    //Data
    int index;                 //Flag
    struct node *next, *down;   //Next & Down pointer
}GLL;

Ejemplo de GLL {Representación de lista}
(a, (b, c), d)

Cuando el primer campo es 0, indica que el segundo campo es variable. Si el primer campo es 1, significa que el segundo campo es un puntero hacia abajo, significa que está comenzando una lista.

Representación polinomial usando lista enlazada generalizada
La estructura de Node típica será:

  • Aquí Flag = 0 significa que la variable está presente
  • Flag = 1 significa que el puntero hacia abajo está presente
  • Bandera = 2 significa que el coeficiente y el exponente están presentes

Ejemplo:
9x 5 + 7xy 4 + 10xz

En el ejemplo anterior, el Node principal es de la variable x. El Node temporal muestra el primer campo como 2 significa que el coeficiente y el exponente están presentes.

Dado que el Node temporal está adjunto al Node principal y el Node principal tiene una variable x, el Node temporal tiene un coeficiente = 9 y un exponente = 5. Los dos Nodes anteriores se pueden leer como 9x 5 .

De manera similar, en la figura anterior, el Node temp1 se puede leer como x 4 .

  • El campo de la bandera es 1 significa que el puntero hacia abajo está allí
  • temp2 = y
  • temp3 = coeficiente = 7
  • exponente = 1
  • flag = 2 significa que el Node contiene valores de coeficiente y exponente.
  • temp2 se adjunta a temp3 esto significa 7y 1 y temp2 también se adjunta a temp1 significa
  • temp1 x temp2
  • x 4 x 7y 1 = 7x 4 y 1 el valor está representado por la figura anterior

Publicación traducida automáticamente

Artículo escrito por ranadeepika2409 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *