顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx

上传人:b****8 文档编号:11293992 上传时间:2023-02-26 格式:DOCX 页数:9 大小:63.99KB
下载 相关 举报
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx_第1页
第1页 / 共9页
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx_第2页
第2页 / 共9页
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx_第3页
第3页 / 共9页
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx_第4页
第4页 / 共9页
顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx

《顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx》由会员分享,可在线阅读,更多相关《顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx(9页珍藏版)》请在冰豆网上搜索。

顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢.docx

顺序表的实现包含插入删除查找等操作完整源代码有注释包你喜欢

实验一顺序表的实现

实验目的:

熟练掌握顺序表的基本操作(插入、删除、查找等)

实验内容:

顺序表中的基本操作的实现(初始化、插入、删除、求表长、按值查找、按位置查找)

实验要求:

以顺序表的动态分配存储结构来实现;所有基本操作均应该以函数的形式表示;要有运行结果并考虑到顺序表中所有情况。

一、实验算法描述:

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、删除操作:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1