数据结构实验1——顺序表
来源:互联网 发布:战地4同步云数据 编辑:程序博客网 时间:2024/06/06 18:56
<span style="font-size:18px;">#include <stdio.h>#include <stdlib.h>#define M 100int flag=0;typedef struct Seqlist{ int elem[M]; int length;}Seqlist;void menu(){ printf("\t顺序表的基本操作实验\t\t\n"); printf("*****************************************\n"); printf("*请选择命令序号(0——7):\t\t*\n"); printf("*1 创建顺序表;\t\t\t\t*\n"); printf("*2 顺序表插入;\t\t\t\t*\n"); printf("*3 顺序表删除;\t\t\t\t*\n"); printf("*4 顺序表长度;\t\t\t\t*\n"); printf("*5 顺序表是否为空;\t\t\t*\n"); printf("*6 顺序表查找;\t\t\t\t*\n"); printf("*7 顺序表输出;\t\t\t\t*\n"); printf("*0 程序退出;\t\t\t\t*\n"); printf("*****************************************\n");}void Initlist(Seqlist *l){ (*l).length=0;}int Creatlist(Seqlist *l){ int i,n=0; if(l->length>0) { printf("线性表已经存在,不需要再创建!\n"); return 0; } printf("请输入线性表的长度:\n"); while(n<1||n>M) scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&l->elem[i]); l->length=n; flag=1; return 1;}int Insertlist(Seqlist *l,int i,int e){ int k; if(l->length>=M) printf("空间不足,请补充空间!\n"); else if(i>l->length) printf("插入位置有误!\n"); else { for(k=l->length-1;k>i-1;k--) l->elem[k+1]=l->elem[k]; l->elem[k]=e; l->length++; printf("插入顺序表成功!\n"); } return 1;}int Dellist(Seqlist *l,int i){ int k; if(l->length<i) printf("无法进行删除操作!\n"); else { for(k=i-1;k<l->length-1;k++) l->elem[k]=l->elem[k+1]; l->length--; printf("删除成功!\n"); } return 1;}int Lengthlist(Seqlist l){ if(flag==0) { printf("此表未创建,因此没有长度!\n"); return 0; } else { printf("顺序表的长度为:%d\n",l.length); return 1; }}void Emptylist(Seqlist l){ if(flag==0) printf("顺序表未创建,不能判断是否为空表!\n"); else { if(l.length==0) printf("顺序表为空表!\n"); else printf("顺序表不是空表!\n"); }}void Findlist(Seqlist l,int e){ int i=0; while((l.elem[i++]!=e)&&(i<l.length)); if(i==l.length) printf("顺序表中不存在这个元素!\n"); else printf("所查找的元素在顺序表中的第%d个\n",i);}void Displaylist(Seqlist l){ int i; if(flag==0) printf("顺序表未创建,无法输出!\n"); else if(l.length==0) printf("顺序表为空!\n"); else { for(i=0;i<l.length;i++) { printf("%d\t",l.elem[i]); if(i==5) printf("\n"); } printf("\n"); }}int main(){ Seqlist l; int i,select,e; Initlist(&l); while(1) { menu(); printf("请输入命令号:(0——7):\n"); scanf("%d",&select); switch(select) { case 1: Creatlist(&l); break; case 2: if(flag==0) printf("顺序表未创建,不能插入!\n"); else { printf("请输入要插入的位置:\n"); scanf("%d",&i); printf("请输入要插入的数据:\n"); scanf("%d",&e); Insertlist(&l,i,e); } break; case 3: if(flag==0) printf("顺序表未创建,不能删除!\n"); else { printf("请输入要删除的位置:\n"); scanf("%d",&i); Dellist(&l,i); } break; case 4: Lengthlist(l);break; case 5: Emptylist(l);break; case 6: if(flag==0) printf("顺序表未创建,不能进行查找!\n"); else { printf("请输入要查找的元素值:\n"); scanf("%d",&e); Findlist(l,e); } break; case 7: Displaylist(l);break; case 0: exit(1);break; default : printf("输入命令有错!请重新输入:\n"); break; } } return 0;}</span>
0 0
- 数据结构实验1——顺序表
- 《数据结构》实验二: 线性表综合实验——(1)顺序表
- 顺序表--数据结构实验
- 数据结构顺序表实验
- 数据结构线性表的综合实验——顺序表
- 数据结构第一次实验——顺序表、栈
- 数据结构实验三——顺序栈
- 数据结构 顺序表 上机实验 1
- 数据结构实验1-顺序表-各种操作
- 数据结构实验--顺序表操作
- 数据结构—顺序表
- 实验1——顺序表例程
- 南邮数据结构实验1 顺序表操作
- 数据结构实验1_顺序表的操作
- 数据结构实验1-线性表的顺序实现
- 数据结构上机实验(1) 顺序线性表
- 数据结构|顺序表的建立(实验1)
- 数据结构实验(一)——顺序表和单链表的设计与实现
- 【第7篇】通过json-lib去读取百度api地图的地方信息
- c++ obj文件与exe文件的区别
- pat1004
- Android5.0的更新包中system.new.dat文件的打包
- 将索引移动到别的表空间
- 数据结构实验1——顺序表
- pat1005
- [算法系列] 求生之路(迷宫找出口)
- pat1006
- exynos4412 HDMI测试
- 为什么选择go语言?go语言的优势
- iBatis教程之CRUD操作
- pat1007
- [置顶] IT牛人博客