Programación de variables de viento 1002 Programación de variables de viento
/* Escriba un programa de sistema de información para estudiantes utilizando una lista vinculada en lenguaje C, que requiere la salida del número de estudiante, nombre, sexo, número de estudiante, nombre, grado (agregar , eliminar, consultar, ordenar, promediar )*/
# incluir ltstdio.h gt
# incluir ltiostream gt
# incluir ltstring.h gt p>
# 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
{
int num
char name[30];
Sexo encantador
puntuación de flotador 1 ; //idioma
Fracción flotante 2; //Matemáticas
Fracción flotante 3 //Inglés
//struct estudiante* siguiente
}estudiante;
p>
enlace de estructura typedef CDT {
encabezado nodoADT;
} * enlaceADT
/ *
* InitLink: inicialización de lista enlazada
* CreateNode: Crear nodo
* AppendLink: Agregar datos
*/
nodoADT CreateNode(entrada de estudiante){ p>
nodo ADT p = (nodo ADT)malloc(tamaño de * p
p->; p- gt; next = 0;
Devuelve p;
}
/*
Ordenar lista enlazada
//Ordenar por número de estudiante
void SortLinkID(linkADT link) {
nodeADT pHead, pRear, p, TP;
if (! enlace) return;
for(pHead = link - gt; head, pRear = 0; pHeadpHead = pHead- gt; next){
for (tp=pHead, p = pHead - gt; siguiente; p; tp=p, p = p - gt;
if(pHead- gt; entrada.num gt = p->; número de entrada)
TP- gt; siguiente = p- gt siguiente, p- gt; pHead,pHead=p,p=tp
if (!pRear) link-gt; 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;
if (! link) return
for (pHead = link- gt; hea
d, pRear = 0; pHeadpHead = pHead- gt; siguiente){
for (tp=pHead, p = pHead- gt; siguiente; p; tp=p, p = p- gt; Siguiente) ?
if(pHead- gt; entrada.score3 gt= p->; entrada.score3)
TP- gt; siguiente = p- gt siguiente, p- gt; =pHead, pHead=p, p = tp
if (!pRear) enlace - gt; head = pHead
else pRear- gt;next = pHead
pRear = pHead
}
}
//Ordenar los nombres en el orden del diccionario
void SortLinkName(linkADT link) {
nodeADT pHead, pRear, p, TP;
if (! link) return;
for (pHead = link- gt; head, pRear = 0; pHeadpHead = pHead- gt; siguiente){
for (tp=pHead, p = pHead- gt; siguiente; p; tp=p, p = p- gt; siguiente)?
if(pHead- gt; entrada. nombre[0] gt; = p->; entrada. nombre[0])
TP- gt; siguiente = p- gt; siguiente, p- gt; siguiente = pHead, pHead = p, p = tp
if (!pRear) link - gt; head = pHead
else pRear- gt;next = pHead
pRear = pHead
}
}
//Ordenar por longitud de nombre
void sort linkname longitud(enlace enlace ADT){
nodoADT pHead, pRear, p, TP;
Si (! enlace) retorno;
for(pHead = enlace - gt; cabeza, pRear = 0; pHeadpHead = pHead- gt; siguiente){
for (tp=pHead, p = pHead- gt; siguiente; p; tp=p, p = p - gt; próximo)?
if(strlen(pHead- gt; entrada. nombre) gt; = strlen(p- gt; entrada. nombre))
TP- gt; siguiente = p- gt; siguiente, p- gt; siguiente = pHead, pHead = p, p = tp
if (!pRear) link - gt; head = pHead
else pRear- gt;next = pHead
pRear = pHead
}
La lista enlazada circular y la lista enlazada única son lo mismo.
Es una estructura de almacenamiento en cadena. La diferencia es que el puntero del último nodo de la lista enlazada circular apunta al primer nodo o nodo principal de la lista enlazada 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 principal, en lugar de establecerse en NULL como una lista enlazada individualmente. Este caso también se utiliza para insertar un nuevo nodo después del último nodo.
2. Al juzgar si se alcanza el final de la tabla, se juzga si el valor del dominio de la cadena 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