“Conocimientos Programación>C /C + + Programming

Cómo crear una lista doblemente enlazada en C Programación

2014/12/6
Los programadores usan listas enlazadas como estructuras de datos desplazables linealmente . Esto significa que el programador puede empezar desde el principio de la lista (llamado cabeza ) y avanzar por la lista de un elemento a la vez. Este método de almacenamiento de datos también permite al programador para agregar de manera eficiente datos a la lista , que ofrece una alternativa más versátil para ciertas otras estructuras de datos tales como matrices dinámicas . Este ejemplo muestra cómo construir una lista doblemente enlazada simple, que permite la navegación de la lista en dos direcciones ( hacia adelante y atrás) . Cosas que necesitará
Editor de Texto Fotos, C /C + + Compiler o IDE (como Microsoft Visual Studio)
Mostrar más instrucciones
1

Crear la estructura de nodo que servirá como el tipo de datos de la lista enlazada . En el editor de texto, escriba el código siguiente : # include


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 ;

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.

C /C + + Programming
Cómo codificar un Screensaver
Cómo hacer un archivo CFG Con Visual C
Cómo quitar el relleno de una estructura C
Cómo realizar ingeniería inversa en Visual C
Cómo convertir a String Float en C + +
Cómo escribir un programa en C + ordenador que calcula la duración de la altura de vuelo por encima de la tierra
Herramientas de desarrollo de Mac OS
Tipos de datos ANSI C
Conocimientos Informáticos © http://www.ordenador.online