#include <stdio.h>
#include<stdlib.h>
typedef struct _node{
char number[20];
char name[10];
char sex; /*f for female, m for male*/
int age;
struct _node *next;
}Node;
typedef struct _list{
Node* head;
}List;
void add(List* pList, Node student);
void print(List *pList);
int main(int argc, char const *argv[])
{
Node * head = NULL;
List list;
int c;
Node students;
char number[20];
list.head = NULL;
while((c = getchar()) != EOF){
scanf("%s %s %c %d", students.number, students.name, &students.sex, &students.age);
if((c = getchar()) != EOF){
students.next = NULL;
add(&list, students);
}
}
print(&list);
scanf("%s", number);
Node *p;
Node *q;
for( q = NULL, p = list.head; p ; q = p, p = p -> next){
if(p -> number == students.number){
if(q){
q -> next = p -> next;
}else{
list.head = p ->next;
}
free(p);
break;
}
}
return 0;
}
void add(List* pList, Node student)
{
//add to linked-list
Node *p = (Node*)malloc(sizeof(Node));
*p = student;
//find the last
Node *last = pList -> head;
if(last){
while(last -> next){
last = last -> next;
}
//attach
last -> next = p;
}else{
pList -> head = p;
}
}
void print(List *pList){
Node *p;
for(p = pList -> head; p; p = p -> next){
printf("%s %s %c %d\n",p -> number, p -> name, p -> sex, p -> age);
}
printf("\n");
}
运行结果如下: