900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 建立一个包含5个结点的链表 每个结点包括学号 姓名 年龄。输入一个学号 查找链表

建立一个包含5个结点的链表 每个结点包括学号 姓名 年龄。输入一个学号 查找链表

时间:2020-02-24 12:08:04

相关推荐

建立一个包含5个结点的链表 每个结点包括学号 姓名 年龄。输入一个学号 查找链表

在即将睡觉的时候,以前一个学弟突然来找我问题目,看了一眼,是比较基础的链表,但是又因为刚刚接触数据结构,所以很难理解,于是从床上爬起来花了半小时写了这篇文章,将原本的函数均写进了main里面,或许可以使“新手”方便理解。

(这篇代码还有待精简提高,只是本人困了… 😄)

第一篇文章,不知道咋样…人生嘛,总有第一次的,要勇于尝试。

#include <stdio.h> #include <malloc.h> /* malloc()等 */#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0typedef int ElemType;/* 线性表的单链表存储结构 */typedef struct LNode{ElemTypenum;ElemTypeage;char name;struct LNode *next;} LNode, *LinkList; int main(){ LinkList L,head;int i,num_temp;L=(LinkList)malloc(sizeof(struct LNode));head=L;LinkList t=L,s,p; //t指向头结点 for(i=0;i<3;i++){p=(LinkList)malloc(sizeof(struct LNode));printf("请输入学号、姓名、年龄:\n");scanf("%d%s%d",&t->num,&t->name,&t->age);t->next=p;if(i==2) t->next=head;t=t->next; //t仍旧是头指针 }//建立一个单循环链表 printf("请输入要删除的学号:\n");scanf("%d",&num_temp);LinkList a=head;printf("删除学号前:"); while(a->next!=head){printf("%d ",a->num);printf("%c ",a->name);printf("%d ",a->age);a=a->next;}printf("%d ",a->num); //输出的是最开始的数据 printf("%c ",a->name);printf("%d ",a->age);//输出删除学号前的链表 a=head;while(a->next->num!=num_temp){a=a->next;}a->next=a->next->next;a=L;printf("删除学号后:") ;while(a->next!=head){printf("%d ",a->num);printf("%c ",a->name);printf("%d ",a->age);a=a->next;}printf("%d ",a->num); printf("%c ",a->name);printf("%d ",a->age);}

此代码只有三个学生,可自行更改人数

建立一个包含5个结点的链表 每个结点包括学号 姓名 年龄。输入一个学号 查找链表 如果链表中的结点所包含的学号等于输入学号 则将此结点删去。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。