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

实验一 顺序表的实现

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

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

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

一、实验算法描述: 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>*p; p++; list.length++; }

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;

for(i=0;i

if(j!=0) { for(;i

3 / 6

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4