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

Cómo crear una lista enlazada en C

2014/9/14
En C, una lista enlazada le permite crear una lista sin decidir de antemano el tiempo que sea, y sin perder la memoria por asignar elementos que aún no tenemos . La desventaja es que usted tiene que hacer todo el trabajo de la organización y gestión de la lista en la memoria. Instrucciones
Crear la Estructura de Datos
1

Elige un nombre, a continuación, utilizar typedef para definirlo. Cada lista enlazada tendrá una estructura, incluso si sólo tiene una variable :

 typedef struct product_data PRODUCT_DATA , página 2 

Definir la estructura. El último elemento debe ser un puntero al tipo que acaba de definir , y nombrado "siguiente" :

 product_data struct { int product_code ; int product_size ; PRODUCT_DATA * siguiente ;} ; 
3

Asignar dos punteros a esta estructura de datos , inicialización a NULL , que la lista de " cabeza" y "cola ":

 PRODUCT_DATA * products_head = NULL; PRODUCT_DATA * products_tail = NULL; 
Añadir a la Lista
Página 4

Asignar una variable temporal que es un puntero a la estructura de datos :

 PRODUCT_DATA * NUEVOSPROD UCTOS ; Página 5 

uso malloc () para crear un nuevo elemento, siempre vigilando por un error:

 if (( NUEVOSPROD UCTOS = malloc ( sizeof ( PRODUCT_DATA ))) == NULL ) { abort ( ) ;} Página 6 

rellenar los campos del nuevo elemento . Establezca su campo " siguiente" para NULL :

 NUEVOSPROD UCTOS -> product_code = Código nuevo ; NUEVOSPROD UCTOS -> product_size = newSize ; NUEVOSPROD UCTOS - > siguiente = NULL; Página 7 

Establezca la variable de cabeza. Si la variable principal es NULL, este es el primer elemento que se agrega a la lista, así que ponga la cabeza variable para señalar que :

 si products_head = NUEVOSPROD UCTOS ; página 8 

Prepárese para una diferente ( products_head !) variable. En otros casos , las variables cola apunta al último elemento de la lista , por lo que establezca su siguiente valor para que apunte al nuevo elemento :

 más products_tail - > siguiente = NUEVOSPROD UCTOS ; página 9 

Actualizar la cola seleccione el nuevo elemento pasado, en ambos casos :

 products_tail = NUEVOSPROD UCTOS ; 
acceder a la lista
10

Cree otra variable temporal que apunta a la estructura de datos :

 * PRODUCT_DATA producto; página 11 

establecer la variable temporal para la variable principal :

 producto = products_head ; Página 12 

bucle a través de los elementos , la comprobación de cada uno y luego establecer la variable temporal a la siguiente puntero para recorrer a la siguiente : mientras

 (producto) {if (! productos > product_code = 15 ) { producto = producto - > siguiente ;} } Página 13 

Compruebe si la variable es NULL . Si es así , nunca se encontró el material:

 si return 0; ( producto ) . De lo contrario, señala el artículo que estabas buscando : 
 devolución de productos -> product_size ; 
Limpie su trabajo
14

Desasigne la lista cuando el programa termina , como no todos los sistemas operativos se manejan de forma automática
15

Loop , siempre y cuando la variable de cabeza no es NULL : .

 while ( products_head ) { 
16

tienda su próxima puntero en la variable cola temporal :

 products_tail = products_head - > siguiente ; Página 17 

desasignar el elemento :

 libre ( products_head ), Página 18 

Ajuste el puntero de cabecera al puntero guardó en el paso 4 :

 products_head = products_tail ;} 
C /C + + Programming
Cómo mostrar una coma en C + +
Cómo Compilar y ejecutar un archivo CPP en CMD
Como la clase de burbuja en C
Cómo escribir un simple controlador de dispositivo PCI
Cómo detectar el golpe del Mic en xCode
Cómo escribir un C + + Programa de las tablas de multiplicar para los Cinco
Cómo utilizar la función strncpy en C + +
Cómo utilizar el vector STL Container Class
Conocimientos Informáticos © http://www.ordenador.online