1 / 45
文档名称:

数据结构实验.doc

格式:doc   大小:76KB   页数:45页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据结构实验.doc

上传人:2786321826 2022/1/10 文件大小:76 KB

下载得到文件列表

数据结构实验.doc

文档介绍

文档介绍:. .
优选
实验1〔C语言补充实验〕
有顺序表A和B,其元素值均按从小到大的升序排列,要求将它们合并成一个顺序表C,且C的元素也是从小到大的升序排列。
*include<>
main()
{
int n,m,i=0,j=0,k=0,a[5],b[5],c[10];/*必须设个m做为数组的输入的计数器,不能用i,不然进展到while时i直接为5*/
for(m=0;m<=4;m++) scanf("%d",&a[m]);//输入数组a
for(m=0;m<=4;m++) scanf("%d",&b[m]);//输入数组b
while(i<5&&j<5)
{if(a[i]<b[j]){c[k]=a[i];k++;i++;}
else if(a[i]>b[j]){c[k]=b[j];k++;j++;}
else{c[k]=a[i];k++;i++;j++;} //使输入的两组数组中一样的数只输出一个
}
if(i<5)
for(n=i;n<5;n++)
{c[k]=a[n];k++;}
else if(j<5)
for(n=j;n<5;n++)
{c[k]=b[n];k++;}
. .
优选
for(i=0;i<k;i++)
printf("%3d",c[i]);
printf("\n");
}
求A∩B
*include<>
main()
{
int i,j,k=0,a[5],b[5],c[5];//A=a[5],B=b[5],A∩B=c[5]
for(i=0;i<5;i++) scanf("%d",&a[i]);//输入a数组
for(i=0;i<5;i++) scanf("%d",&b[i]);//输入b数组
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
if(a[i]==b[j]){c[k]=a[i];k++;}//当有元素重复时,只取一个放入c中
}
for(i=0;i<k;i++)
printf("%3d",c[i]);
printf("\n");
}
实验2〔C语言补充实验〕
. .
优选
一个有序整型数组,编程将一个整型数m插入到该数组中,使得插入后的数组任然有序。
*include<>
*define N 4
main()
{
int i,j,m,k,a[N+1];//k为最后输出数组的长度变量
printf("请输入有序整型数组a[%d]\n",N);
for(i=0;i<N;i++) scanf("%d",&a[i]);
printf("请输入整型数m\n");
scanf("%d",&m);
if(a[0]<a[1])//递增有序数组
{for(i=0;i<N;i++)
{
if(m==a[i]){k=N; break;}//m和数组元素一样
if(m<a[i])//m比当前元素小,数组右移
{for(j=N;j>i;j--)
a[j]=a[j-1];
a[i]=m;k=N+1;break;
}
}if(i==N) {k=N+1;a[N]=m;}//m比所有元素大
. .
优选
}
if(a[0]>a[1])//递减有序数组
{for(i=0;i<N;i++)
{
if(m==a[i]) {k=N;break;}//m和数组元素一样
if(m>a[i])//m比当前元素大,数组右移
{for(j=N;j>i;j--)
a[j]=a[j-1];
a[i]=m;k=N+1;break;
}
}if(i==N) {k=N+1;a[N]=m;}//m比所有元素小
}
for(i=0;i<k;i++)
printf("%3d",a[i]);
printf("\n");
}
补充实验
线性表LA和LB中的数据元素按值非递减有序排序,现要求将LA和LB归并为一个新的线性表LC,且LC中的数据元素仍按值非递减有序排列。
*inclu