2017年华南师范大学计算机学院925数据结构考研强化模拟题
● 摘要
一、填空题
1.
给定一组数据
的值为_____。 【答案】5;96
【解析】每次找两个最小的权值构建哈夫曼树:
以它构造一棵哈夫曼树,则树高为_____,
带权路径长度
2. 对于双向链表,在两个结点之间插入一个新结点需修改的指针共_____个,单链表为_____个。
【答案】4; 2
3. 数组的存储结构采用_____存储方式。
【答案】顺序存储结构
【解析】数组本身的存储结构是线性的,也就是说它是连续存储的。 4. 在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的_____; 对于有向图来说等于该顶点的_____。
【答案】度;出度
5. 设数组储,则元素为_____。
【答案】9174;8788
【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,
则它的存储地址为
若以列序为主存储顺序,则它的存储地址为
6. 分别采用堆排序,快速排序,起泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是_____算法。
【答案】起泡;快速
,【解析】当初态为有序表时,冒泡排序只需要进行一趟比较即可,此时时间复杂度为〇(n )
第 2 页,共 52 页
的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存
的存储地址为_____;若以列序为主序顺序存储,则元素
的存储地址
而快速排序算法需要比较的次数达到最大,时间复杂度为
7.
=_____
【答案】5
8. 设有两个算法在同一机器上运行,其执行时闻分别为_____。
【答案】15
【解析】当时,而,时,
9. 索引顺序文件既可以顺序存取,也可以_____存取。
【答案】随机
10.当广义表中的每个元素都是原子时,广义表便成了_____。
【答案】线性表
要使前者快于后者,n 至少为
【解析】如果每个元素都是原子,则元素不可分。此时的元素是只有一对一的关系,所以广义表变成了线性表。
二、算法设计题
11.设有一头指针为L 的带有表头结点的非循环双向链表,其每个结点中除有pred (前驱指针),data (数据)和next (后继指针)域外,还有一个访问频度域freq 。在链表被启用前,其值均初始化为零。每当在链表中进行一次Locate (L ,x )运算时,令元素值为x 的结点中freq 域的值増1, 并使此链表中结点保持按访问频度非增(递减)的顺序排列,同时最近访问的结点排在频度相同的结点的最后,以便使频繁访问的结点总是靠近表头。试编写符合上述要求的Locate (L , x )运算的算法,该运算为函数过程,返回找到结点的地址,类型为指针型。
【答案】算法如下:
第 3 页,共 52 页
12.请运用快速排序思想,设计递归算法实现求n (n>l)个不同元素集合中的第
【答案】算法如下:
13.叙述基数排序算法,并对下列整数序列图示其基数排序的全过程。(179,208,93,306,55,859,984,9,271,33)
【答案】算法如下:
第 4 页,共 52 页
小元素。