数据结构>>顺序存储结构习题
2-1-1】顺序表是线性表的( )存储表示。
A. 有序 B. 连续 C. 数组 D. 顺序存取
2-1-2】顺序表的优点是( )。
A. 插入操作的时间效率高 B. 适用于各种逻辑结构的存储表示
C. 存储密度(存储利用率)高 D. 删除操作的时间效率高
2-1-3】若设一个顺序表的长度为n,那么,在表中顺序查找一个值为x的元素时,在等概率的情况下,查找成功的数据平均比较次数为( ) 。
A.n B.NULL C. (n+1)/2 D. (n-1)/2
2-1-4】在长度为n的顺序表的表尾插入一个新元素的时间复杂度为( )。
A.O(n) B.O(1) C. O(n^2) D. O(log2n)
2-1-5】在长度为n的顺序表中删除一个元素的时间复杂度为( )。
A.O(1) B.O(log2n) C.O(n) D.O(n^2)
2-1-6】将两个各有n个元素的递增有序顺序表归并成一个有序顺序表,其最少的比较次数是( )。
A.n B.2n-l C.2n D.n-1
2-2-1】对于顺序表L,指出以下算法的功能。
void fun1(SqList *&L)
{ // 形参传递为指针的引用方式
int i, j=0;
for(i=1; i
if (L->elem[i]>L->elem[j])
j=i;
for(i=j; i
L->elem[i]=L->elem[i+1];
L->length--;
删除表中最大值
2-2-2】对于顺序表L,指出以下算法的功能。
void fun2(SqList *&L, ElemType x)
int i, j=0;
for (i=1; i
if (L->elem[i]<=L->elem[j])
j=i;
for (i=L->length; i>j; i--)
L->elem[i]=L->elem[i-1];
L->elem[j]=x;
L->length++;
在最小值前插入数值x
2-3】下面算法的功能是:将元素x插入到一个有序(从小到大排序)顺序表的适当位置上,并保持有序性。请在空白处填入正确的语句。
void Insert(SqList *&L, ElemType x)
int i=0,j;
while (_______1_________&& L->elem[i] for (_________2_________; j>=i; j--) L->elem[j+1]=L->elem[j]; L->elem[i]=x; _______3_________; 1 i 2 j=L->length-1 3 L->length++ 2-4】下面算法的功能是:设有一个线性表(a1,a2,a3,...,an-1,an)存放在一个顺序表中,将这个线性表原地逆置,即将顺序表的n个数据元素置换为(an,an-1,...,a2,a1)。请在空白处填入正确的语句。 void Reverse(SqList &L) if(______①_______) return; ElemType temp; for(int i = 1; i <= ________②_______; i++) { temp = ______③_______; L.elem[i - 1] = L.elem[L.length - i]; _________④_________ = temp; } ①L.length==0 ②(L.length+1)/2 ③L.elem[i - 1] ④L.elem[L.length - i] 2-5】下面算法的功能是:若一个顺序表 L 中所有元素为整数,算法调整该顺序表,使其中所有小于零的元素放在所有大于等于零的元素的前面。请在空白处填入正确的语句。 void fun(SqList *&L) int i = 0, j = ______①_________; while(________②________) { while(L->elem[i] < 0) _____③_________; while(L->elem[j] >= 0) ______④__________; if(______⑤_______) swap(L->elem[i], L->elem[j]); } ①L->length-1 ②i< L->length ③i++ ④j-- ⑤i