顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx
- 文档编号:11293992
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:9
- 大小:63.99KB
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx
《顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx》由会员分享,可在线阅读,更多相关《顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx(9页珍藏版)》请在冰豆网上搜索。
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢
实验一顺序表的实现
实验目的:
熟练掌握顺序表的基本操作(插入、删除、查找等)
实验内容:
顺序表中的基本操作的实现(初始化、插入、删除、求表长、按值查找、按位置查找)
实验要求:
以顺序表的动态分配存储结构来实现;所有基本操作均应该以函数的形式表示;要有运行结果并考虑到顺序表中所有情况。
一、实验算法描述:
1、顺序表的声明和创建
typedefstruct
{
int*data;//int*型元素
intlength;//顺序表的实际长度
intlistsize;//顺序表的最大长度
}sqlist;
voidcreatsqlist(sqlist&list)
{
list.data=(int*)malloc(sizeof(int)*maxsize);//开辟一个名为l的顺序表
if(!
list.data)//判断顺序表是否存在
exit
(1);
list.length=0;
list.listsize=maxsize;
}
2、初始化函数initsqlist(list)
voidinitsqlist(sqlist&list)//初始化操作
{
int*p;
intn;
cout<<"请输入顺序表元素数(1-50):
"< cin>>n; cout<<"您申请的顺序表的长度是---"< p=list.data;//p指向头指针 cout<<"请依次输入无重复数字的有序顺序表(相邻数据用空格隔开,回车键完成输入): "< for(inti=0;i { cin>>*p; p++; list.length++; } cout<<"您输入的递增顺序表为: "< for(i=0;i cout< cout< } 3、输出函数put(list) voidput(sqlist&list)//输出函数 {inti; for(i=0;i cout< cout< } 4、定位函数locateElem(list) voidlocateElem(sqlist&list) { inti,j=0,b; cout<<"请输如要查找的字符: \n"; cin>>b; for(i=0;i if(list.data[i]==b) {j=i+1;break;} if(j) cout<<"该数字的位置是: "< else cout<<"很抱歉,表中没有这个数字,请重试! "< } 5、插入函数insert(list) voidinsert(sqlist&list)//插入函数 { inti; cout<<"您想在第几位插入数字: \n"; cin>>i; intx; cout<<"请输入要插入的数字: \n"; cin>>x; intj; if(i<0||i>list.length) { cout<<"位置错误"< put(list); } else {for(j=list.length;j>=i;j--) list.data[j]=list.data[j-1]; list.data[j]=x; list.length++; } cout<<"插入操作完成后的顺序表: "< put(list); } 6、删除函数delete1(list)和delete2(list) voiddelete1(sqlist&list)//删除第i个位置的数字的函数 { inti,b; cout<<"请输入你想要删除数据的位置: "< cin>>i; if(i<0||i>list.length) {cout<<"输入错误! "< else {b=list.data[i-1]; for(i=i-1;i list.data[i]=list.data[i+1]; --list.length; cout<<"需要删除的元素是: "< cout<<"删除操作完成后的顺序表是: "< put(list); } } voiddelete2(sqlist&list)//删除指定数字的函数 { intb; cout<<"输入您想删除的数字: "< cin>>b; inti,j=0; for(i=0;i { if(list.data[i]==b) {j=i+1;break;} } if(j! =0) { for(;i list.data[i]=list.data[i+1]; --list.length; cout<<"该位置是第"< cout<<"删除操作完成后的顺序表是: "< put(list); } else cout<<"很遗憾,表中没有找到此数字,删除不成功,请重试! "< } 二、实验程序描述: 主函数如下: intmain() { intflag; sqlistl; creatsqlist(l); initsqlist(l); cout< cout<<"请输入要进行的操作序号: \n"; cout<<"1.插入字符"< cin>>flag; do { switch(flag) {case1: insert(l);break; case2: locateElem(l);break; case3: delete1(l);break; case4: delete2(l);break; default: cout<<"请重新输入||代码错误"< cout<<"**************************************************************************"< cout<<"请输入要进行的操作序号: \n"; cout<<"1.插入字符"< cin>>flag; } while(flag! =0); return0; } 三、实验结果(输入和输出): 1、输入界面: 2、插入操作: 3、查找操作: 4、删除操作:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺序 实现 包含 插入 删除 查找 操作 完整 源代码 注释 喜欢