经典数据结构上机题—答案.pdf
精品文档
数据结构上机实验题目
实验一线性表的顺序存储结构
实验学时2学时
背景知识:顺序表的插入、删除及应用。
目的要求:
1.掌握顺序存储结构的特点。
2.掌握顺序存储结构的常见算法。
实验内容
1.输入一组整型元素序列,建立顺序表。
2.实现该顺序表的遍历。
3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。
4.判断该顺序表中元素是否对称,对称返回1,否则返回0。
5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为
偶数。
6.输入整型元素序列利用有序表插入算法建立一个有序表。
7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序
表。
8.利用该顺序结构实现循环队列的入队、出队操作。
8.编写一个主函数,调试上述算法。
#includestdio.h
#includestdlib.h
#defineOVERFLOW0
#defineMAXSIZE100
1。
欢迎下载
精品文档
typedefintElemType;
typedefstructlist
{ElemTypeelem[MAXSIZE];
intlength;
}Sqlist;
voidCreatlist(SqlistL)
{inti;{inti;
请输入顺序表的长度:请输入顺序表的长度://输入一组整型元素序列,建立一
个顺序表。
for(i=0;iL.length;i++)
}
voidprintlist(SqlistL)//以输出的形式实现对该顺序表的遍历
{inti;
for(i=0;iL.length;i++)
}
voidSearchlist(SqlistL,intx)//在顺序表中进行顺序查找某一元
素x,查找成功则返回其存储位置i,否则返回错误信息
{inti,k=-1;
for(i=0;iL.length;i++)
if(L.elem[i]==x){
if(k==-1)
}
voidInseri(SqlistL,inti,intx)//在顺序表的第i个位置上插入一
个元素x
{intj;
for(j=L.length;j=i;j--)
L.elem[j]=L.elem[j-1];
L.elem[j]=x;
L.length++;
}
voidDelete(SqlistL,inti)//删除顺序表中第i个元素
{intj;
for(j=i;jL.length;j++)
L.elem[j-1]=L.elem[j];
L.length--;
}
voidInsert(SqlistL,intx)//输入一个元素x,把它插入到有序表
2。
欢迎下载
精品文档
中,使顺序表依然有序。
{inti,j;
if(L.length==MAXSIZE)exit(OVERFLOW);//表满,不能插入
for(i=1;i=L.lengthL.elem[i-1]=x;i++);
for(j=L.length;j=i;j--)
L.elem[j]=L.elem[j-1];
L.elem[i-1]=x;
L.length++;
}
voidCreatlist_sorted(SqlistL)//利用有序表插入算法建立一个有
序表
{inti,num;
ElemTypex;
L.length=0;L.length=0;
请输入顺序表的长度:请输入顺序表的长度:请输入顺序表的长度:
for(i=1;i=num;i+