¿Por qué el eje Z siempre está atrapado en el aire durante la programación y el procesamiento en Yulong Simulation?
#include lt; stdlib.hgt; /*Archivo de encabezado que contiene ma l o c ( )*/
#include lt; ①Defina la estructura de datos de la lista enlazada
struct node
{
int num;
struct node *next;
};
//Declaración de función
struct node *creat();
void print();
main()
{
struct node *head;
head=NULL; //②Crea una tabla vacía
head=creat( head) ;/*Crear una lista enlazada individualmente*/
print(head);/*Imprimir una lista enlazada individualmente*/
}
/*** ** *************************************/
nodo de estructura* creat( struct node *head)/*devuelve un puntero del mismo tipo que el nodo*/
{
struct node*p1, *p2;
int i =1;
//③Utilice la función malloc () para aplicar al sistema la asignación de un nodo
p1=p2=(struct node*)malloc(sizeof( struct node));/ *Nuevo nodo*/
printf("Ingrese un valor. El valor debe ser menor o igual a 0. La dirección de almacenamiento del valor es: p1_ADDR= d\n", p1);
scanf(" d", amp; p1-gt; num); /*Ingrese el valor del nodo*/
p1-gt; /*Establece el puntero del nuevo nodo en nulo*/
while(p1-gt;numgt;0)/*El valor del nodo de entrada es mayor que 0*/
{
//④Asigne el miembro puntero del nuevo nodo a nulo.
Si es una tabla vacía, conecte el nuevo nodo al encabezado de la tabla; si es una tabla no vacía, conecte el nuevo nodo al final de la tabla
if(head== NULL)
head=p1; /*Tabla vacía, conectar al encabezado*/
else
p2-gt; -tabla vacía, conectar al final de la tabla*/
p2=p1;
p1=(struct node*)malloc(sizeof(struct node));/*Siguiente new node*/
i=i 1;
printf("Ingrese un valor. El valor termina en 0 o menos. La dirección de almacenamiento del valor es: pd_ADDR= d\n ", i, p2);
scanf("d", amp; p1-gt; num); /*Ingrese el valor del nodo*/
//⑤ Juez si hay nodos posteriores para conectar a la lista vinculada, si es así, vaya a 3); de lo contrario, finalice p>
}
//=========; ===== Parte de corrección del programa original: (Gracias a @daling_datou por el recordatorio) ========== ====================== =
free(p1); //El aplicado no fue ingresado, por lo que se libera
p1=NULL //apunta a null
p2; -gt; next = NULL; // llega al final de la tabla, apunta a null
printf("Fin de la entrada de la lista vinculada (END)\n"); /====================================== ===========
return head;/*Devuelve el puntero principal de la lista enlazada*/
}
/**** ******** *******************************/
impresión vacía (estructura nodo*cabeza)/*Obtener el valor de cada nodo de la lista enlazada con head como encabezado*/
{
struct node *temp;
temp=head ;/*Get el puntero principal de la lista vinculada*/
printf("\n\n\nEl valor almacenado en la lista vinculada es:\n");
while(temp!= NULL)/*Siempre que sea una lista no vacía*/
{
printf("6d\n", temp-gt; num); valor del nodo de la lista vinculada*/
temp=temp-gt; next /* Seguimiento del crecimiento de la lista vinculada*/
}
printf ("¡¡La impresión de la lista enlazada finaliza!!");