Tutorial de programación de listas enlazadas
#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 * * * * */ p >
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.