SHAOXIAOJ正在加载中...

1207: 单链表

金币值:2 定数:9 时间限制:1.000 s 内存限制:128 M
正确:2 提交:2 正确率:100.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 结构体

题目描述

建立一个链表,每个结点包括:学号、姓名、性别、年龄,链表中结点按照年龄大小排序,并编写相关函数实现链表结点的插入、删除和、创建和遍历输出等功能



#define LEN sizeof(struct student)

struct student

{

int id;     //编号

char name[12];     //姓名

char sex;     //'F':女、'M':男

int age;

struct student *next; //指向下一个节点的指向变量

};

struct student *creat(void);

struct student *insertnode(struct student *head, struct student *per);

struct student *deletenode(struct student *head, int id);

void outputnodes(struct student *head);

int main(void)

{   

   struct student *head, *p;

  char sex;

  int age;

  int id;

  char name[12]; 

do

{

  scanf("%d", &choise);

  switch(choise){

  case 1:

  head = creat();

 break;

 case 2: 

 scanf("%d %s %c %d",&id, name, &sex, &age);

p = (struct student*)malloc(LEN);

p->id = id;

strcpy(p->name, name);

p->sex = sex;

p->age = age;

head = insertnode(head,p);

break;

case 3: 

scanf("%d", &id);

head = deletenode(head,id);

break;

case 4:

outputnodes(head);

break;

case 0:

break;

}

}while(choise != 0);

    return 0;

}


输入格式

输入操作编号:1: Create;  2: Insert; 3: Delete; 4: Print; 0: Exit

输入样例    复制

1
2019211001 zhanglei M 18
0 zhanglei M 18
2
2019211002 lihui F 19
2
2019211003 zhaoqiang M 17
4
3
2019211001
4
0

输出样例    复制

2019211003 zhaoqiang M 17
2019211001 zhanglei M 18
2019211002 lihui F 19
2019211003 zhaoqiang M 17
2019211002 lihui F 19