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?
{ p>
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;
}