一、选择题(每题2分)
1.数据的不可分割的基本单位是 __。
A.元素 B.结点 C.数据类型 D.数据项
2.____是线性表。
A.(孔子,诸葛亮,曹雪芹) B.{A,B,C,D}
C.{10,11,12,13,14} D.(1,2,3,...)
4.将线性表的数据元素以____结构存放, 查找一个数据元素所需
的时间不依赖于表的长度。
A.循环双链表 B.哈希(Hash)表 C.一维数组 D.单链表
5.设数组A[1..8,1..10]的基地址为4000, 每个元素占2个存储单元,若以列序为主序顺序存储,则元素A[4,7]的存储地址是____。(假定无第0行第0列元素)
A.4072 B.4104 C.4102 D.4074
6.设依次进入一个栈的元素序列为c,a,b,d,不可得到出栈的元素序列有_____。
A.a.b,c,d B.a,d,c,b C.b,a,d,c D.c,d,a,b
二、填空(每空1分)
1.一个数据结构在计算机中的表示(映象)称为 ________________。
2.线性表中 ____________________________ 称为表的长度。
3.栈中元素的进出原则为 _____________________ 。
4.设数组A[1..10,1..8]的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素A[4,5]的存储地址为_____;若以列序为主序顺序存储,则元素A[4,5]的存储地址为______。
5.一个算法具有5个特性:__________________、__________________、________________、有零个或多个输入、有一个或多个输出。
6.设长度为n的线性表顺序存贮,若在它的第i-1和第i个元素之间插入一个元素, 共需移动 _________ 个元素
三、回答下列问题 (每小题5分)
1.线性表的存储结构,在什么情况下采用顺序结构? 为什么?
2.线性表的存储结构,在什么情况下采用链接表(如:单链表)结构?为什么?
四、试画出下列存储结构图(每小题4分)
1.数组A[1..2,0..2] 的以列序为主序的顺序存储结构。
2.依次将元素 A,C,D,B 插入一个初始状态为空的链式栈中,试画出所有插入完成之后的链式栈。
五、算法设计(算法中必须有注释,每小题8分)
1. 已知队列 Q 以循环队列存储。写出 Q 的存储结构类型描述,并试编写算法实现将元素 x 插入队列 Q 的入队操作 EnQueue(Q,x)和从队列 Q 中获取队首元素的函数 GetTop(Q)。
2. 假设线性表 L=(a1,a2,……,an) 用带头结点的单链表存储表示,试编写算法对其实现就地逆置,即利用原链表中每一个结点存储空间,使得元素的逻辑次序改变为(an,……, a2,a1)。
3.设n个元素的线性表顺序存储在一维数组 st[1..maxlen] 的前n个位置上,试写出算法:删除表中第i(1≤i≤n)个元素。