Esta pregunta requiere que los estudiantes para crear un teclado para introducir información en una lista enlazada, y ver la información del estudiante lista de información de los estudiantes.
Estudiante nodo de información LLI se define como sigue:
typedef struct lista {
int sno;
sname char [10];
Lista * siguiente;
};
Es necesario crear una función incluir:
La creación de información de la función lista de estudiantes: CreateList
Encuentra una lista de funciones de información del estudiante: encontrar
interfaz de definición de función:
Lista * CreateList (); // entrada de teclado número varias estudiante y el nombre, número de estudiante y el nombre con una separación carácter de espacio, número de estudiante cuando la entrada es -1, el extremo de entrada, crear una lista de información de la función del estudiante que vuelve los estudiantes se dirigen lista de punteros.
Lista * Buscar (* Lista cabeza, int no) // número de estudiante consulta la escuela hay información en la lista de alumnos (cabeza a cabeza puntero), devuelve un puntero al nodo estudiante.
Ref procedimiento de prueba de la muestra:
int main (void) {
Lista * Lista = NULL, P;
int NO;
List = CreateList ();
al mismo tiempo (~ Scanf ( "% D", y NO))
{
P = 'Buscar' (Lista, NO );
SI (P) printf ( "% S \ n", p-> Sname);
el otro el printf ( "No se ha encontrado \ n");
}
return 0;
}
/ por favor, responda a la pregunta aquí * /
Ejemplo de entrada 1:
20180002 WANG
20180006 Yong
20180008 Wu Tao
20170010 Lin
-1 XX
20180002
Muestra de Producto 1:
dado aquí de salida correspondiente. Por ejemplo:
Wang Hong
Ejemplo de entrada 2:
20180002 WANG
20180006 Yong
20180008 Wu Tao
20170010 Lin
-1 XX
20170015
Salida de ejemplo 2:
No se ha encontrado!
List * CreateList()
{
List *p, *head, *tail;
int id; char name[10];
head = (List*)malloc(sizeof(List));
head->next = NULL;
tail = head;
scanf("%d", &id);
while (id != -1)
{
p = (List*)malloc(sizeof(List));
p->next = NULL;
p->sno = id;
scanf("%s", p->sname);
scanf("%d", &id);
tail->next = p;
tail = p;
}
scanf("%s", name);
return head;
}
List * Find(List *head, int no)
{
List *p;
p = head->next;
while (p->sno != no)
{
if (p->next == NULL)
return p->next;
p = p->next;
}
return p;
}