一、判断正误
( F )1. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( T )2. 线性表在物理存储空间中也一定是连续的。
( F )3. 线性表在顺序存储时,逻辑上相邻的元素未必在存储的物理位置次序上相邻。
( F )4. 顺序存储方式只能用于存储线性结构。
( F )5. 线性表的逻辑顺序与存储顺序总是一致的。
二、单项选择题
( C )1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:
(A)存储结构 (B)逻辑结构 (C)顺序存储结构 (D)链式存储结构
( B )2. 一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是
(A)110 (B)108 (C)100 (D)120
( A )3. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:
- 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
- 在第i个结点后插入一个新结点(1≤i≤n)
- 删除第i个结点(1≤i≤n)
(D) 将n个结点从小到大排序
( B )4. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素
(A)8 (B)63.5 (C)63 (D)7
( C )5.线性表是具有n个________的有限序列(n>0)。
A.表元素 B.字符 C.数据元素 D.数据项
三、编程题
1.请写一个算法将顺序存储结构的线性表(a1...an)逆置为(an...a1),要求使用最少的附加空间。
Status ListOppose(SqList &L)
{ // 颠倒顺序表中的数据元素
int i;
ElemType x;
for(i=0; i< L.length/2; i++) // 只需要遍历原表的一半就可以实现数据元素位置的交换
{
x = L.elem[i];
L.elem[i] = L.elem[L.length-i-1]; // 数据元素交换->逆置
L.elem[L.length-i-1] = x;
}
return OK;
}