Red de conocimiento informático - Computadora portátil - C Cómo crear una lista enlazada unidireccional de 10 nodos para almacenar 10 datos de registro que constan de números enteros y cadenas y generarlos en orden secuencial e inverso

C Cómo crear una lista enlazada unidireccional de 10 nodos para almacenar 10 datos de registro que constan de números enteros y cadenas y generarlos en orden secuencial e inverso

#include?lt;iostreamgt;

#include?lt;string.hgt;

typedef?struct?Record

{

int?n;

char?s[5];

¿Registro?*siguiente

}Registro, *RList;

void?buildList(RList?amp; list)//¿Crear una lista vinculada?

{

¿Registro?*p;

list =new?Record;//¿Crear un nodo principal sin almacenar datos?

p=list;

for(int?i=0;ilt;10;i)

p>

{

p-gt; siguiente=nuevo?Registro;

p=p-gt; siguiente;?

p -gt; n=i;

strcpy(p-gt; s, "str");

p-gt; número i en caracteres correspondientes

p-gt; s[4]='\0' //Fin de la cadena

}

p-gt; next=NULL ;//¿Fin de la lista enlazada?

}

void?reverseList(RList?list)//¿Lista enlazada inversa?

{

Registro?*p=list-gt; next-gt; next, *r;

list-gt; next=NULL; /p>

/ /Método de inserción del encabezado

while(p)

{

r=p-gt

p-gt; siguiente = lista-gt;

lista-gt; siguiente=p; p>

}

void?printList(RList?list)//Imprimir lista enlazada

{

Registro?*p?=?list- gt; siguiente;

while(p)

{

printf("n=d?s=s\n",p-gt;n, p-gt;s);

p=p-gt; siguiente

}

}?

int?main( int?argc,?char** ?argv)?{

RList?list;

buildList(lista);

printf("\nSalida secuencial: \n");

p>

printList(lista);

printf("\nSalida inversa:\n");

ReverseList(lista);

printList (lista);

reverseList(list); //Restaurar la lista enlazada

return?0;

}