数据结构与算法实训内容及要求
Ⅰ
基础题部分实训内容及要求
一、顺序表操作
1
、显示
2
、插入
3
、查找(显示比较次数)
4
、删除(显示移动次数)
5
、排序(普通、快速,显示比较次数、移动次数)
6
、折半查找(显示比较次数)
7
、编程实现一个顺序表的就地逆置,即利用原表的存储空间将顺序表逆置。
提高题:
8*
、要求以较高的效率实现删除顺序表中元素值在
x
到
y(x
和
y
自定
)
之间的所有元素。
[
解题思路
]
在顺序表中设置两个初值为
0
的下标变量
i
和
j
,其中,
i
为比较元素的下标,
j
为赋值元素的下标。
依次取顺序表中下标为
i
的元素与
x
和
y
比较,假若是
x
到
y
之外的元
素,则赋值给下标为
j
的元素。这种算法比删除一个元素后立即移动其后面的元素的效率高
得多。
9*
、编程实现将两个有序的顺序表进行合并,要求同样的数据元素只出现一次。
[
解题思路
]
由于两个顺序表中的元素呈有序排列,在进行合并的时候,依次比较,哪个顺
序表的元素值小,
就先将这个元素复制到新的顺序表中,
若两个元素相等,
则复制一个即可,
这样一直到其中的一个顺序表结束,然后将剩余的顺序表复制到新的顺序表中即可。
10*
、有序插入(显示比较次数、移动次数)
,
屏幕提示后,从键盘输入一个元素值,在经过排序的线性表中插入这个元素;
屏幕显示比较次数和移动次数,应有溢出判断和报告。
顺序表操作菜单如下图所示
: