设为首页 加入收藏

TOP

C_线性表(ADT)-单向循环链表的表示和实现(三)
2017-08-09 10:22:14 】 浏览:824
Tags:线性 ADT 单向 循环 表示 实现
{ int n; int ch; LinkList L; ElemType e; InitList(L); //初始化单循环链表 printf("单循环链表构造成功!\n"); printf("请输入单循环链表的长度:"); scanf("%d",&n); printf("请输入单循环链表各个数据:"); for(int i=1;i<=n;i++) { scanf("%d",&e); ListInsert(L,i,e); //在第i个结点前插入e } printf("*********************************\n"); printf("1、插入结点\n2、删除结点\n3、链表判空\n"); printf("4、链表长度\n5、清空链表\n6、销毁链表\n"); printf("7、结点前驱\n8、结点后续\n9、遍历链表\n"); printf("10、查询位序结点\n"); printf("11、查询结点位序\n"); printf("0、退出操作\n"); printf("*********************************\n"); printf("请选择接下来要进行的操作:"); while(scanf("%d",&ch)&&ch!=0) { if(ch==1){ int set; printf("请输入在第几个结点之前插入新结点:"); scanf("%d",&set); printf("请输入要插入结点的数据:"); scanf("%d",&e); if(ListInsert(L,set,e)) printf("操作成功!\n"); } if(ch==2){ int set; printf("请输入要删除第几个结点:"); scanf("%d",&set); if(ListDelete(L,set,e)) printf("成功删除第%d个结点,其值为%d\n",set,e); } if(ch==3){ if(ListEmpty(L)) printf("这是一个空的链表!\n"); else printf("这不是一个空的链表!\n"); } if(ch==4){ printf("链表的长度为:%d\n",ListLength(L)); } if(ch==5){ if(ClearList(L)) printf("已成功清空链表!\n"); } if(ch==6){ DestroyList(L); } if(ch==7){ printf("请输入要查找元素的前驱:"); scanf("%d",&n); if(PriorElem(L,n,e)) printf("%d元素的前驱是%d\n",n,e); else printf("输入错误!\n"); } if(ch==8){ printf("请输入要查找元素的后续:"); scanf("%d",&n); if(NextElem(L,n,e)) printf("%d元素的后续是%d\n",n,e); else printf("输入错误!\n");//输入的是尾结点也会判断尾输入错误 } if(ch==9){ printf("正序输出链表:"); ListTraverse(L,print); } if(ch==10){ printf("请输入要匹配的数据元素:"); scanf("%d",&n); if(LocateElem(L,n,equal)) printf("等于%d的元素是第%d个\n",n,LocateElem(L,n,equal)); else printf("链表中不存在元素%d\n",n); } if(ch==11){ int set; printf("请输入要查询链表位序的值:"); scanf("%d",&set); if(GetElem(L,set,e)) printf("链表的第%d个元素的值为%d\n",set,e); else printf("输入错误!\n"); } printf("请选择接下来要进行的操作:"); } printf("成功退出操作!\n"); return 0; }

 

 

首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C 语言getopt与go语言flag获取命.. 下一篇C语言关键字const用法

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目