int main {
NodoLista struct { int
datos
;
puntal NodoLista * prev ;
puntal NodoLista * siguiente ;
} ;
return 0; }
el bloque " struct NodoLista " de código crea una plantilla para los elementos que llenarán la lista. Esta plantilla define un NodoLista que contiene tres elementos: un elemento de datos ( un entero) y enlaces a los temas anterior y siguiente en la lista. Un puntero es una variable que contiene una dirección de memoria . Los punteros se utilizan para referirse a otras estructuras de datos en memoria profunda y asignar memoria dinámicamente durante la ejecución del código.
2
Declare las variables que organizar la estructura de la lista . Inserte este código de ejemplo en el archivo de texto :
int size ;
NodoLista * cabeza ;
NodoLista * cola;
cola = cabeza ; < br >
cabeza = cola;
Estos dos indicadores son el principio y el final de la lista, respectivamente. El uso de estos punteros , el programador sabe dónde está el principio de la lista y donde el fin es , simplemente comprobando si el nodo actual es la "cabeza " o puntero "cola " . Ambos se refieren de nuevo a la otra en caso de una lista vacía.
3
Crear un algoritmo simple de agregar los elementos de la lista enlazada . Siga este código de ejemplo :
void append ( int num) {
struct NodoLista * trazador = cabeza ;
struct NodoLista * newNode = (struct NodoLista *) malloc ( sizeof (struct NodoLista ));
newNode -> data = num;
if ( cabeza == NULL ) {
cabeza = newNode ;
tail = newNode ;
newNode -> prev = cabeza ;
newNode - > siguiente = cola;
}
else {
while ( trazador - > siguiente = cola! )
= { trazador trazador - > siguiente ;}
newNode -> prev = trazador ;
newNode - > siguiente = cola;
trazador - > siguiente = nodo;
cola = nodo;
}
tamaño
+ + ;
}
Este código agrega un nodo al final de la lista . Se comienza creando un puntero a la cabeza de la lista ( " marcador ") . A continuación , se crea un puntero a un bloque de asignación dinámica de memoria reservada para un NodoLista recién creado ( newNode ) y los conjuntos de datos de ese nodo al número entero " número " . Si los puntos de la cabeza a NULL ( es decir, la lista está vacía , debido a que los puntos de la cabeza a la nada ), entonces , el código inserta el nodo al principio de la lista. De lo contrario, los " mientras que" los ciclos de bucle a través de los nodos de la lista hasta llegar a la última estación . Cuando " trazadoras " apunta al último elemento de la lista, el código inserta el nodo. El último comando agrega al entero "tamaño" , el seguimiento de los elementos de la lista
4
Crear un algoritmo para eliminar y el tema del final de la lista : .
void removeNode () {
if ( tail = cabeza ) {
struct NodoLista * end = cola;
tail = cola -> prev ;
< p> libre (fin ) ;
tamaño
- ;
}
}
Este código crea un puntero ( "end" ) hasta el último elemento de la lista ( los mismos elementos de los puntos " a la cola " ) . A continuación , la cola se ajusta para apuntar a el elemento inmediatamente antes de que el último elemento ( el nodo al que apunta el puntero "anterior " del último elemento ) . Por último , la memoria utilizada por el último nodo , denominado por "fin" , se libera para su uso posterior.