数据结构试验 顺序表
编写一个完整的程序,实现顺序表的建立、插入、删除、输出等基本运算。
(1) 建立一个顺序表,含有n个数据元素。
(2) 输出顺序表及顺序表的长度。
(3) 在顺序表中删除值为x的结点或者删除给定位置i的结点。
(4) 将顺序表就地逆置,即利用原表的存储空间将线性表(a1,a2,...,an)逆置为(an,an-1,...,a1)。
(5) 将顺序表按升序排序。
(6) 设顺序表中的数据元素递增有序,将x插入到顺序表的适当位置上,以保持该表的有序性。
(7) 将两个顺序有序表A和B合并为一个有序表C。
在主函数中设计一个简单的菜单,分别测试上述算法
[cpp] //因为之前没有写过这样的操作菜单,所以很多地方没做好。比如说输入输出的数据没有对齐,整个排版看起来有些拥挤,每一次操作都会输出一次菜单。
//实验目的是测试各个函数的作用,写的时候除了创建顺序表的函数,其他函数后面我都加了一个输出函数,将按要求改变后的顺序表直接输出了。
//我将a、b、c数组和n、m都设置成了全局变量,方便代码的操作。
//因为创建函数没有设置形参,在合并数组的时候,我是先将a数组赋值给b数组,数组合并后将c数组再复制给a数组输出。这个是我事先没考虑到,下次改进。
//输出菜单可以放在函数里面,主函数中的代码看起来会简洁很多,之前也没想到。
//写完之后发现把删除数据的函数给漏掉了,后面又加上了。
//测试数据:a数组:5 2 5 3 4 1
//插入元素:第3位 7
//b数组:7 8 9 10 11 12 13 14
//删除数据: 第3位
#include<stdio.h>
#define N 105
int a[N],b[N],c[N*2];
int n,m;
void Creatlist()//创建函数
{
int i;
printf("输入数据数量: ");
scanf("%d",&n);
printf("输入数据: ");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
return ;
}
void Printlist()//打印函数
{
int i;
printf("顺序表长度n: %d\n",n);
printf("顺序表: ");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
return ;
}
void Inverlist()//逆序函数,逆序后直接输出
{
int r,l;
int temp;
for(l=0,r=n-1;l<=r;l++,r--)
{
temp=a[r];
a[r]=a[l];
a[l]=temp;
}
Printlist();
return ;
}
void Sortlist()//排序函数,用的是冒泡排序,因为不是实验重点,也就没太注意效率的问题。
{
int i,j;
int temp;
for(i=n-1;i>=1;i--)
{
for(j=0;j<i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
Printlist();
return ;
}
void Insertlist()//插入函数
{
int x,y;
int temp0,temp1;
int i;
printf("插入数据的位置: ");
scanf("%d",&x);
printf("插入数据的数值: ");
scanf("%d",&y);
temp0=a[x-1];
a[x-1]=y;
for(i=x;i<n;i++)
{
temp1=a[i];
a[i]=temp0;
temp0=temp1;
}
a[i]=temp0;
n++;
Printlist();
return ;
}
void Comlist()//合并函数,在这个函数中重新输入了一个数组
{
int i,j,k;
for(i=0;i<n;i++)
b[i]=a[i];
m=n;
Creatlist();
i=j=k=0;
while(i<n||j<m)
{
if(a[i]<b[j]&&i<n&&j<m)
{
c[k++]=a[i];
i++;
}
else if(a[i]>=b[j]&&i<n&&j<m)
{
c[k++]=b[j];
j++;
}
else if(i==n)
{
c[k++]=b[j];
j++;
}
else
{
c[k++]=a[i];
i++;
}
}
for(i=0;i<k;i++)
a[i]=c[i];
n=k;
Printlist();
return ;
}
void Delelist()
{
int x;
int i;
printf("需要删除的数据的位置: ");
scanf("%d",&x);
a[x-1]=a[x];
补充:软件开发 , C++ ,