Lenguaje C, quiero ingresar información sobre 10 libros. ¿Cómo crear una lista enlazada? Gracias.
El siguiente es el código, lo he comentado detalladamente.
# include & ltstdio.h & gt
# include & ltmalloc.h & gt
# include & ltstring.h & gt
typedef? estructura? Libro//Configuré aleatoriamente varios miembros para la estructura del libro, puedes cambiarlo tú mismo.
{
¿Ciel? Nombre[20];
¿Carácter? Escriba[10];
int? Fecha;
estructura? ¿Libro? *Siguiente;
} bk
int? ¿principal? ()
{
bk? *addBook(bk?*bkTail, char?*vName, char?*vType, int?vDate);
bk? *bk0=(bk?*)malloc(sizeof(bk)); //Solicita el espacio de memoria del puntero del primer nodo.
¿bk? * bkTail = bk0//Define un puntero de nodo final.
¿bk? *bkHead=(bk?*)malloc(sizeof(bk));
bk head-& gt; next = bk0//Defina un nodo principal para recorrido, sin colocar datos, y su puntero de lista de miembros apunta al nodo principal.
bk0->; name[0]= 0;
// - No lo escribiré después de unirme, así que pondré cuatro libros a prueba primero y tienes que agregarlos tú mismo.
BkTail=addBook(bkTail, "Lenguaje C desde la entrada hasta el entierro", "TI/Ciencia", 20171220);
BkTail=addBook(bkTail, "De la entrada hasta el entierro" jave", "TI/Ciencia", 20171225);
BkTail=addBook(bkTail, "De los primeros pasos a la base de datos enterrada", "TI/Ciencia", 20171226);
BkTail=addBook(bkTail, "Aprende a crecer por ti mismo", "Educación", 20171230);
Printf("Se ha ingresado la información del libro\ n ");
Printf("Comenzar a imprimir la información del inventario del libro\n ");
while(bk head-& gt; next!=null)
{
Printf("Nombre del libro: %s, categoría del libro: %s, fecha de almacenamiento: %d\n ", bk head-& gt; next-& gt; nombre, bk head-& gt ;siguiente->tipo, bk head->siguiente->fecha);
bk head = bk head->siguiente;
}
¿Regresar? 0;
}
bk? *addBook(bk?*bkTail, char?*vName, char?*vType, int?VDate)//¿Crear 1 nuevo nodo de lista vinculada de libros? ¿Unirse al final de una lista vinculada? y regresa al nodo de entrada actual.
//Parámetro 1? Dirección del nodo de cola;? Los otros parámetros son datos de miembros de entrada.
{
if(bk tail-& gt;Name[0]==0)//primera entrada
{
strcpy(bk tail->Nombre,vName);
strcpy(bk tail->tipo,vType);
bk tail->fecha = vDate
bk tail->next = NULL
¿Regresión? bkTail
}
Otros
{
bk? *newBk=(bk?*)malloc(sizeof(bk));
strcpy(newBk-& gt; nombre, vName);
strcpy(newBk-& gt; tipo , vType);
newBk-& gt;date = vDate
newBk->next = NULL
bk tail->next = newBk p>
¿Regresar? nuevoBk
}
}