Red de conocimiento informático - Aprendizaje de código fuente - Tarea de estructura de datos ~ Solicitud urgente ~~~ Utilice lenguaje C o C ++ para implementar la lista de procesos del sistema utilizando una lista enlazada individualmente para completar operaciones como inserción, eliminación y consulta.

Tarea de estructura de datos ~ Solicitud urgente ~~~ Utilice lenguaje C o C ++ para implementar la lista de procesos del sistema utilizando una lista enlazada individualmente para completar operaciones como inserción, eliminación y consulta.

1. Creación de una lista enlazada individualmente

Con la base de la asignación de memoria dinámica, no es difícil implementar una lista enlazada.

La llamada lista enlazada es una estructura de datos que utiliza un conjunto de unidades de almacenamiento arbitrarias para almacenar elementos de lista lineal. Las listas enlazadas se dividen en listas enlazadas individualmente, listas enlazadas doblemente, listas enlazadas circulares, etc. Hablemos primero de las listas enlazadas individualmente. La llamada lista enlazada individualmente significa que los contactos de datos están organizados en una dirección. Un nodo de lista enlazado individualmente, su tipo de estructura se divide en dos partes:

1. Campo de datos: utilizado para almacenar sus propios datos

2. Campo de enlace o campo de puntero: utilizado para Almacena la dirección del siguiente nodo o un puntero a su sucesor inmediato.

Ejemplo:

typedef strUCt nodo

{

char nombre[20];

struct nodo * link;

}stud;

Esto define una estructura de lista enlazada individualmente, donde char name[20] es una matriz de caracteres utilizada para almacenar nombres y el puntero *link es un puntero. utilizado para almacenar su sucesor inmediato.

Después de definir la estructura de la lista vinculada, siempre que los datos apropiados se almacenen en el campo de datos cuando el programa se está ejecutando, si hay un nodo sucesor, apunte el campo de vínculo a su sucesor directo. si no, el conjunto es NULL.

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 <stdio.h>

#include <malloc.h> /*Archivo de encabezado que contiene funciones de asignación de memoria dinámica*/

#define N 10 /*N es el número de personas*/

typedef struct node

{

char name[20];

struct node *link ;

}stud;

stud * creat(int n) /*Función para crear una lista enlazada individualmente, el parámetro formal n es el número de personas*/

{

stud *p,*h,*s; /* *h guarda el puntero del nodo de encabezado, *p apunta al nodo anterior del nodo actual, *s apunta al nodo actual*/

int /*Counter*/

if((h=(stud *)malloc(sizeof(stud)))==NULL) / *Asignar espacio y detectar*/

{

PRintf("¡No se puede asignar espacio en la memoria!");

exit(0);

}

h->name[0]='\0'; /*Deje en blanco el campo de datos del nodo de encabezado*/

h->link=NULL; /*Establecer el campo de datos del nodo de encabezado Deje el campo de cadena en blanco*/

p=h; /*p apunta al nodo de encabezado*/

for(i=0 ;i

{

if((s= (stud *) malloc(sizeof(stud)))==NULL) /*Asignar nuevo espacio de almacenamiento y detectar*/

{

printf("¡No se puede asignar espacio de memoria!");

exit(0);

}

p->link= s; /*Asigne la dirección de s al dominio de enlace del nodo señalado por p, conectando así py el nodo señalado por s*/

printf("Por favor ingrese el nombre de la %ésima persona",i+1);

scanf("%s",s->nombre /*Guarde el nombre en el campo de datos del actual); nodo s*/

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 que guarda la dirección del nodo principal de la lista enlazada individualmente*/

number=N;

head=creat(number) ); /*Asignar la dirección del nodo principal de la lista enlazada individualmente recién creada Dar cabeza*/

}

De esta manera, ha escrito una lista enlazada individualmente que puede crear N nombres personales. Los programas que escriben asignación de memoria dinámica deben prestar atención e intentar detectar si la asignación es exitosa.

Citado de: www.knowsky.com/394874.html

¡Gracias por adoptar!