内容发布更新时间 : 2025/1/8 23:52:17星期一 下面是文章的全部内容请认真阅读。
实验一 顺序表的实现
实验目的:熟练掌握顺序表的基本操作(插入、删除、查找等)
实验内容:顺序表中的基本操作的实现(初始化、插入、删除、求表长、按值查找、按位置查找)
实验要求:以顺序表的动态分配存储结构来实现;所有基本操作均应该以函数的形式表示;要有运行结果并考虑到顺序表中所有情况。
一、实验算法描述: 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):\让用户输入顺序表元素个数 cin>>n;
cout<<\您申请的顺序表的长度是---\ p=list.data;//p指向头指针
cout<<\请依次输入无重复数字的有序顺序表(相邻数据用空格隔开,回车键完成输入):\
for(int i=0;i
cout<<\您输入的递增顺序表为:\打印出初始化的顺序表
1 / 6
for(i=0;i 3、输出函数put(list) void put(sqlist &list) //输出函数 { int i; for(i=0;i 4、定位函数locateElem(list) void locateElem(sqlist &list) { int i,j=0,b; cout<<\请输如要查找的字符:\\n\ cin>>b; for(i=0;i 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<<\位置错误\ put(list); } else 2 / 6 { 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) void delete1(sqlist &list)//删除第i个位置的数字的函数 { int i,b; cout<<\请输入你想要删除数据的位置:\ cin>>i; if(i<0||i>list.length) {cout<<\输入错误!\ else {b=list.data[i-1]; for(i=i-1;i cout<<\需要删除的元素是:\ cout<<\删除操作完成后的顺序表是:\ put(list); } } void delete2(sqlist &list)//删除指定数字的函数 { int b; cout<<\输入您想删除的数字:\ cin>>b; int i,j=0;