PTA: lista de estudiantes Find (20 puntos) (lenguaje C)

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;
}
Publicado 58 artículos originales · ganado elogios 21 · vistas 600

Supongo que te gusta

Origin blog.csdn.net/qq_45624989/article/details/105400435
Recomendado
Clasificación