实现循环单链表表各种基本运算的算法

上传人:wm****3 文档编号:42613704 上传时间:2018-06-02 格式:DOC 页数:5 大小:77KB
返回 下载 相关 举报
实现循环单链表表各种基本运算的算法_第1页
第1页 / 共5页
实现循环单链表表各种基本运算的算法_第2页
第2页 / 共5页
实现循环单链表表各种基本运算的算法_第3页
第3页 / 共5页
实现循环单链表表各种基本运算的算法_第4页
第4页 / 共5页
实现循环单链表表各种基本运算的算法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《实现循环单链表表各种基本运算的算法》由会员分享,可在线阅读,更多相关《实现循环单链表表各种基本运算的算法(5页珍藏版)》请在金锄头文库上搜索。

1、 课课 程程 实实 验验 报报 告告实验题目: 实验目的:题目: 实现循环单链表表各种基本运算的算法 编写程序实现循环单链表各种基本运算,并在此基础上设计一个主程序完成如下功能: 1、 初始化循环单链表 2、 依次采用尾插法插入 a,b,c,d,e 元素。 3、 输出循环单链表 4、 输出循环单链表的长度 5、 判断循环单链表是否为空 6、 输出循环单链表的第 3 个元素 7、 输出元素 a 的位置 8、 在第 4 个位置上插入元素 f 9、 输出循环单链表 10、删除循环单链表的第 3 个元素 11、输出循环单链表 12、释放循环单链表二 #include #include #include

2、 #include struct node char c;struct node *next; ; struct node *head,*tail,*p,*q,*r; int cut1=0; void show() printf(“nntttt 欢 迎 使 用!“);printf(“nnttt1、加入元素“);printf(“nnttt2、输出全部元素和元素个数“);printf(“nnttt3、输出特定元素位置“);printf(“nnttt4、输出特定位置元素“);printf(“nnttt5、在特定位置插入元素“);printf(“nnttt6、删除特定位置元素“);printf(“nn

3、ttt7、删除全部元素“);printf(“nnttt0、退出“);printf(“nntt 请输入:“); void chu() head=(struct node*)malloc(sizeof(struct node);head-next=NULL;tail=head; void add() int n,i;printf(“ttt 请输入要加入的元素个数:“);scanf(“%d“,for(i=0; ic);tail-next=p;p-next=NULL;tail=p;cut1+;printf(“nntt 加入完成,按任意键返回主菜单!“);getch(); void _count() i

4、nt cut=1;if(head-next=NULL)printf(“nnnnnntt 没有元素 ,按任意键返回主菜单!nnnnnn“);getch();return ;p=head-next;while(p-next)课课 程程 实实 验验 报报 告告实验题目: printf(“%c-“,p-c);cut+;p=p-next;printf(“%cn“,p-c);printf(“t 共 有 %d 个 元 素。“,cut);printf(“nntt 输出完成,按任意键返回主菜单!“);getch(); void show1() char s;int cut=0;fflush(stdin);pri

5、ntf(“请输入要查找的元素:“);scanf(“%c“,p=head-next;while(p)cut+;if(p-c=s)printf(“ntt 此元素位于链表第%d 的位置!“,cut);printf(“nntt 输出完成,按任意键返回主菜单!“);getch();return ;p=p-next;printf(“ntt 没有找到该元素!“);printf(“nntt 输出完成,按任意键返回主菜单!“);getch(); void show2() int cut=0,t;printf(“请输入你要找的是第几个元素:“);scanf(“%d“,if(tcut1)printf(“ntt 没有

6、找到该元素!“);printf(“nntt 输出完成,按任意键返回主菜单!“);getch();return ;else if(t=cut1)printf(“此元素是 %c !“,tail-c);printf(“nntt 输出完成,按任意键返回主菜单!“);getch();return ;elsep=head-next;while(p-next)cut+;if(cut=t)printf(“此元素是 %c !“,p-c);printf(“nntt 输出完成,按任意键返回主菜单!“);getch();return ;p=p-next; void insert1() int t,cut=0;char

7、 s;fflush(stdin);printf(“请输入要插入的位置:“);scanf(“%d“,fflush(stdin);p=(struct node*)malloc(sizeof(struct node);printf(“ttt 请输入元素(单个字母) ,按回车结束:“);scanf(“%c“,课课 程程 实实 验验 报报 告告实验题目: if(tcut1)printf(“系统检测到您要插入的位置大于链表长度,自动加入到链表尾端“);tail-next=p;p-next=NULL;tail=p;elseq=head;while(q-next)cut+;if(t=cut)p-next=q-

8、next;q-next=p;break;q=q-next;cut1+;printf(“nntt 插入完成,按任意键返回主菜单!“);getch(); void del1() int t,cut=0;char s;fflush(stdin);printf(“请输入要删除的位置:“);scanf(“%d“,if(tcut1)printf(“系统检测到您要删除的位置大于链表长度,删除失败!n“);printf(“按任意键返回主菜单!n“);getch();return;elseq=head;while(q-next)cut+;if(t=cut)p=q-next;q-next=q-next-next;

9、free(p);break;q=q-next;cut1-;printf(“nntt 删除完成,按任意键返回主菜单!“);getch(); void del2() char s;printf(“是否删除全部元素?按 N 取消,任意键继续。“);s=getch();if(s=nwhile(p)head-next=p-next;free(p);p=head-next;cut1=0;printf(“操作完成,按任意键返回主菜单!n“);课课 程程 实实 验验 报报 告告实验题目: getch(); int main() int cho;printf(“nnnnnnnnnnttt 程序已经启动,按任意键

10、初始化链表!“);if(getch()chu();system(“cls“);while(1)show();scanf(“%d“,if(cho=1)add();else if(cho=2)_count();else if(cho=3)show1();else if(cho=4)show2();else if(cho=5)insert1();else if(cho=6)del1();else if(cho=7)del2();else if(cho=0)system(“cls“);printf(“nnnnnnnnnnttt 程 序 已 退 出 !nnnnnn“);return 0;system(“cls“);return 0; 课课 程程 实实 验验 报报 告告实验题目: 指导教师:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号