Nodo de eliminación del diccionario
/* Escriba un programa de sistema de información de estudiantes utilizando una lista vinculada en lenguaje C, que debe generar el número de estudiante, el nombre, el sexo, el número de estudiante, el nombre y las calificaciones del estudiante (agregar, eliminar , consultar, ordenar y promediar )*/
# incluir ltstdio.h gt
# incluir ltiostream gt
# incluir ltstring.h gt
# include ltstdlib .h gt
Usar espacio de nombres std
const int n = 5;
/*
* nodeEntry : tipo de datos de nodo
* nodeADT: estructura de nodo
* linkADT: estructura de lista enlazada
*/
estructura typedef estudiante p>
{
int num
char name【30】;
Sexo encantador
puntaje flotante 1; /Idioma
Fracción flotante 2; //Matemáticas
Fracción flotante 3; //Inglés
//struct Student * next;
}Estudiante;
enlace de estructura typedef CDT {
encabezado de nodoADT;
} * enlaceADT
/*
* InitLink: Inicializar lista enlazada
* CreateNode: Crear nodo
* AppendLink: Agregar datos
*/
nodeADT CreateNode (entrada de estudiante) {
nodoADT p = (nodoADT) malloc (tamaño de * p);
p-》; entrada=entrada, p- gt; p>
return p;
}
/*
Ordenar enlace: Ordenar lista enlazada
//Ordenar por estudiante número
void sort linkid(link ADT link){
nodeADT pHead, pRear, p, TP
Si (! link) devuelve
for (pHead = link- gt; head, pRear = 0; pHeadpHead = pHead- gt; siguiente) {
for (TP = pHead, p = pHead- gt; siguiente; p; tp=p, p = p-》; siguiente)?
if (pHead- gt; entrada.num gt = p-》; número de entrada)
TP- gt; siguiente = p- gt siguiente, p-》; pHead, pHead=p, p = tp
if (!pRear) link->; head = pHead
else pRear- gt next = pHead
pRear = pHead
}
//Ordenar por puntuación en inglés
void sort link English (enlace enlace ADT) {
nodeADT pHead , pRear, p, TP;
Si (! link) devuelve
for (pHead = link- gt; head, p
Rear = 0; pHeadpHead = pHead- gt; siguiente) {
for (TP = pHead, p = pHead- gt; siguiente; p; tp=p, p = p-》; siguiente )?
if (pHead- gt; entrada.score3 gt= p-》; entrada. puntuación 3)
TP- gt; siguiente = p- gt siguiente, p-》 ; next=pHead, pHead=p, p = tp
if (!pRear) link-》; head = pHead
else pRear- gt; p>pRear = pHead
}
}
//Ordenar los nombres en el orden del diccionario
void sort link name (enlace ADT link ) {
nodeADT pHead, pRear, p, TP;
Si (! link) regresa;
for (pHead = link- gt; head , pRear = 0; pHeadpHead = pHead- gt; siguiente) {
for (TP = pHead, p = pHead- gt; siguiente; p; tp=p, p = p-》; siguiente)?
if (pHead- gt; entrada . nombre [0] gt; = p-》; entrada . nombre [0])
TP- gt; siguiente, p-> siguiente=pHead, pHead=p, p=tp
if (!pRear) link->head = pHead
else pRear-gt;next = pHead
pRear = pHead
}
}
//Ordenar por longitud del nombre
void sort linkname length( link ADT link){
nodoADT pHead, pRear, p, TP;
Si (! link) regresa;
for (pHead = link - gt; cabeza, pRear = 0; pHeadpHead = pHead- gt; siguiente) {
for (TP = pHead, p = pHead- gt; siguiente; p; tp=p, p = p -";Siguiente) ?
if (strlen(pHead- gt; entrada. nombre) gt; = strlen(p- gt; entrada. nombre))
TP- gt; siguiente = p- gt; siguiente, p-> siguiente=pHead, pHead=p, p=tp
if (!pRear) link->head = pHead
else pRear-gt;next = pHead
pRear = pHead
}
La lista enlazada circular es lo mismo que la lista enlazada individualmente.
Es una estructura de almacenamiento en cadena. La diferencia es que el puntero del último nodo de la mesa circular apunta al primer nodo o nodo principal de la mesa circular, formando así una cadena circular.
El funcionamiento de una lista enlazada circular es básicamente el mismo que el de una lista enlazada individualmente.
Las diferencias son las siguientes:
1. Al establecer una lista enlazada circular, el puntero del último nodo debe apuntar al nodo del encabezado, en lugar de establecerse en NULL como una lista enlazada única. Este caso también se utiliza para insertar un nuevo nodo después del último nodo.
2. Al juzgar si se ha llegado al final de la tabla, se juzga si el valor del campo de enlace del nodo es el nodo principal. Cuando el valor del campo de la cadena es igual al puntero principal, significa que se ha llegado al final de la lista. En lugar de juzgar si el valor del campo de la cadena está vacío como una lista enlazada individualmente.
Lista enlazada a la Enciclopedia Baidu