Red de conocimiento informático - Consumibles informáticos - Tutorial de programación de listas enlazadas

Tutorial de programación de listas enlazadas

/*Operación de lista enlazada lineal: solo se proporcionan declaraciones principales*/

#Incluye "stdio.h"

#Incluye "stdlib.h"

# Número de definición 100

typedef int ElemType/*Estructura de almacenamiento de la lista enlazada*/

estructura typedef LNode{

Datos de tipo de elemento;

struct LNode * next} LNode, * LinkList/*Operaciones básicas de listas enlazadas*/* * * * * 1. Inicializar lista enlazada * * * * */

void InitList(LinkList *L)

{ * L =(LinkList)malloc(sizeof(LNode));

(* L)- gt; next = NULL}/* * * * * 2. Destruye la lista enlazada* * * * */

void DestroyList(lista enlazada*L)

{ LinkList p;

mientras(*L!=null)

{ p = * L;

* L =(* L)- gt; Siguiente ;

Gratis (p);}

}

/* * * * * * 10. Insertar elemento E * * * * */

void ListInsert(LinkList *L, int n, tipo de elemento e)

{Lista enlazada p, q, nueva. int I;

q = * L; p = (* L)- gt; siguiente; I = 1; p; p = p- gt; siguiente;}

nuevo =(LinkList)malloc(sizeof(LNode));

nuevo-gt; p>

q->; next = new new - gt; next = p;}/* * * * * * 11. Eliminar el elemento en la enésima posición en la lista enlazada * * * * */

void ListDelete(LinkList *L, int n, ElemType *e)

{Lista enlazada p, q; int I;

q = * L; * L)- gt; siguiente; I = 1;

Y (p! = NULL amp iltn) { q = p; p = p- gt; p>* e = p- gt; data;

q->; next = p- gt; free (p); * * * * */

void ListTraverse(lista enlazada L)

{ LinkList p;

printf("\n lista:\t") ;

p = L- gt; siguiente;

Y (p!=null)

{ printf("d\t ",p- gt;datos );

p = p- gt;next;}

}/* * * * * * A (2).

Luego cree una lista enlazada secuencial * * * * */

void CreateList2(LinkList *L, ElemType a[], int n)

{Linked List p, new int I; ;

p = * L;

for(I = 0; iltn; i )

{ nuevo =(LinkList)malloc(sizeof(LNode)) ;

Nuevo-gt;data = a[I];

p->;siguiente = nuevop = p- gt;Siguiente;}

p - >; siguiente = NULL

}

/*función principal*/

main()

{ LinkList LaElemType a[] = {1, 3, 5, 7, 9}, x;

InitList( amp; la); //Inicializa la lista enlazada

Crea lista 2( amp; La, a , 5); //Crea una lista vinculada y asigna valores usando matrices.

list traverse(La); //Recorre la lista enlazada

list insert(amp; La, 3, 100); //Inserta 100 en la tercera posición.

list traverse(La); //Recorre la lista enlazada

list delete(& la, 5 y x); //Elimina el quinto elemento y regresa con x.

list traverse(La);//Recorre la lista destroylist(;la);//Destruye la lista enlazada

} Esto es lo que acabamos de aprender, asegúrate de que sea conciso y preciso.