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

时间:2026-01-15

数据结构上机课的实验报告-顺序表的实现,里面有完整源代码,有中文的注释,包含插入 、删除 、查找等操作,保证你看得懂,保证好用!呵呵

实验一 顺序表的实现

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

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

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

一、实验算法描述:

1、顺序表的声明和创建

typedef struct

{

int* data;//int*型元素

int length;//顺序表的实际长度

int listsize;//顺序表的最大长度

}sqlist;

void creatsqlist(sqlist &list)

{

list.data=(int*)malloc(sizeof(int)*maxsize);//开辟一个名为l的顺序表 if(!list.data)//判断顺序表是否存在

exit(1);

list.length=0;

list.listsize=maxsize;

}

2、初始化函数initsqlist(list)

void initsqlist(sqlist &list)//初始化操作

{

int* p;

int n;

cout<<"请输入顺序表元素数(1-50):"<<endl;//让用户输入顺序表元素个数 cin>>n;

cout<<"您申请的顺序表的长度是---"<<n<<endl;

p=list.data;//p指向头指针

cout<<"请依次输入无重复数字的有序顺序表(相邻数据用空格隔开,回车键完成输入):"<<endl;

for(int i=0;i<n;i++)//逐个赋值

{

cin>>*p;

p++;

list.length++;

}

cout<<"您输入的递增顺序表为:"<<endl;//打印出初始化的顺序表

数据结构上机课的实验报告-顺序表的实现,里面有完整源代码,有中文的注释,包含插入 、删除 、查找等操作,保证你看得懂,保证好用!呵呵

for(i=0;i<n;i++)

cout<<list.data[i]<<"\t";

cout<<endl;

}

3、输出函数put(list)

void put(sqlist &list) //输出函数

{ int i;

for(i=0;i<list.length;i++)

cout<<list.data[i]<<"\t";

cout<<endl;

}

4、定位函数locateElem(list)

void locateElem(sqlist &list)

{

int i,j=0,b;

cout<<"请输如要查找的字符:\n";

cin>>b;

for(i=0;i<list.length;i++)

if(list.data[i]==b)

{j=i+1;break;}

if(j)

cout<<"该数字的位置是:"<<j<<endl;

else

cout<<"很抱歉,表中没有这个数字,请重试!"<<endl;

}

5、插入函数insert(list)

void insert(sqlist &list)//插入函数

{

int i;

cout<<"您想在第几位插入数字:\n";

cin>>i;

int x;

cout<<"请输入要插入的数字:\n";

cin>>x;

int j;

if(i<0||i>list.length)

{

cout<<"位置错误"<<endl;

put(list);

}

else

数据结构上机课的实验报告-顺序表的实现,里面有完整源代码,有中文的注释,包含插入 、删除 、查找等操作,保证你看得懂,保证好用!呵呵

{ for(j=list.length;j>=i;j--)

list.data[j]=list.data[j-1];

list.data[j]=x;

list.length++;

}

cout<<"插入操作完成后的顺序表:"<<endl;

put(list);

}

6、删除函数delete1(list)和delete2(list)

void delete1(sqlist &list)//删除第i个位置的数字的函数

{

int i,b;

cout<<"请输入你想要删除数据的位置:"<<endl;

cin>>i;

if(i<0||i>list.length)

{cout<<"输入错误!"<<endl;return;}

else

{b=list.data[i-1];

for(i=i-1;i<list.length-1;i++)

list.data[i]=list.data[i+1];

--list.length;

cout<<"需要删除的元素是:"<<b<<endl;

cout<<"删除操作完成后的顺序表是:"<<endl;

put(list);

}

}

void delete2(sqlist &list)//删除指定数字的函数

{

int b;

cout<<"输入您想删除的数字:"<<endl;

cin>>b;

int i,j=0;

for(i=0;i<list.length;i++)

{

if(list.data[i]==b)

{j=i+1;break;}

}

if(j!=0)

{

for(;i<list.length-2 ;i++)

list.data[i]=list.data[i+1];

--list.length;

数据结构上机课的实验报告-顺序表的实现,里面有完整源代码,有中文的注释,包含插入 、删除 、查找等操作,保证你看得懂,保证好用!呵呵

cout<<"该位置是第"<<i<<"位"<<endl;

cout<<"删除操作完成后的顺序表是:"<<endl;

put(list);

}

else

cout<<"很遗憾,表中没有找到此数字,删除不成功,请重试!"<<endl; }

二、实验程序描述:

主函数如下:

int main()

{

int flag;

sqlist l;

creatsqlist(l);

initsqlist(l);

cout<<endl<<"**************************************************************************"<<endl;

cout<<"请输入要进行的操作序号:\n";

cout<<"1.插入字符"<<endl<<"2.查找数字"<<endl<<"3.删除第i位数字"<<endl<<"4.删除指定数字"<<endl …… 此处隐藏:1115字,全部文档内容请下载后查看。喜欢就下载吧 ……

顺序表的实现,包含插入 删除 查找等操作,完整源代码,有注释,包你喜欢.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219