¡Ayúdame a responder una pregunta en lenguaje C! Es un poco simple. Utilice el lenguaje C para escribir una lista vinculada para implementar las funciones de inserción, eliminación y búsqueda. Gracias.
{
nombre de char[20];
nodo de estructura * enlace;
} stud
Esto define la estructura de una lista enlazada individualmente, en la que nombre de caracteres [20] es la matriz de caracteres utilizada para almacenar el nombre y el puntero *enlace es el puntero utilizado para almacenar su sucesor directo.
Después de definir la estructura de la lista vinculada, siempre que se almacenen los datos apropiados en el campo de datos cuando el programa se está ejecutando, si hay un nodo sucesor, el campo de vínculo apunta a su sucesor directo, si no, se establece en nulo.
Echemos un vistazo a un programa completo para crear una lista enlazada individualmente con un encabezado (si no se especifica, todas las listas enlazadas mencionadas a continuación tienen encabezados).
#include
# include < malloc.h >/*Archivo de encabezado que contiene funciones de asignación de memoria dinámica*/
#Definición n 10 /*n es Número de personas*/
nodo de estructura typedef
{
nombre de char[20];
enlace de nodo de estructura*;
} stud
Stud * creat(int n) /*Función para crear una lista enlazada individualmente, donde el parámetro formal n es el número de personas*/
{
Stud *p, *h, *s; /* *h guarda el puntero del nodo principal, *p apunta al nodo anterior del nodo actual, *s apunta al nodo actual */
int I; /* Contador*/
if((h =(stud *)malloc(sizeof(stud)))= = null)/*Asignar espacio y detectar* /
{
Printf(\ "¡No se puede asignar espacio de memoria!\");
Salir(0);
}
h-> name[0 ]= \ ' \ \ 0 \ '; /*Deje el campo de datos del nodo de encabezado en blanco*/
h-> link = null; /*Deje el campo de enlace del nodo principal en blanco*/ p>
p = h; /*p apunta al nodo principal*/
for(I = 0; I < n ; i++)
{
if((s =(stud *)malloc(sizeof(stud)))= = null)/*Asignar nuevo espacio de almacenamiento y detectar*/
{
Printf( \ "¡No se puede asignar espacio de memoria! \");
Salir (0); p>
p-> link = s; /*Cambiar S La dirección se asigna al dominio de cadena del nodo señalado por P, conectando así los nodos señalados por P y S*/
Printf(\ "Ingrese el nombre de %d persona\ ", I+1);
scanf(\"%s\ ", s-> nombre); campo de datos del nodo actual*/
s-> link = null;
p = s;
}
Return( h);
}
Main()
{
int número /*Variable que contiene el número de personas*/
Stud*head; /*head es un puntero a la dirección del nodo principal de una lista enlazada individualmente*/
Número =
head; =creat(number); /*Asigne la dirección principal de la lista enlazada individualmente recién creada a head*/
} p>
De esta manera, una lista enlazada individualmente que contenga n nombres puede ser creado. Al escribir un programa para la asignación de memoria dinámica, tenga cuidado y haga todo lo posible para detectar si la asignación se realizó correctamente.