}
该算法的功能为:
该算法被调用后得到的输出结果为:
将原链表逆序 15 12 8 5 130 30
Test2
北京邮电大学数据结构期末考试试题(A卷)
一. 单项选择题(2分/题)
1. 一个栈的输入序列为12345,则下列序列中是栈的输出序列的是(A)。
A.23415 B.54132 C.31245 D.14253
2. 设循环队列中数组的下标范围是1~n,其头尾指针分别为f和r,则其元素个数为(D)。
A.r-f B.r-f+1 C.(r-f) mod n +1 D.(r-f+n) mod n
3. 二叉树在线索化后,仍不能有效求解的问题是(D)。
A.先序线索二叉树中求先序后继 B. 中序线索二叉树中求中序后继 C.中序线索二叉树中求中序前驱 D. 后序线索二叉树中求后序后继
4. 求最短路径的FLOYD算法的时间复杂度为(D)。
A.O(n) B.O(n+e) C.O(n2) D.O(n3)
5. 一棵左右子树不空的二叉树在先序线索化后,其空指针域数为(B)。
A.0 B.1 C.2 D.不确定
6. 数组A[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为(A)。
A.1140 B.1145 C.1120 D.1125
7. 在下列排序算法中,在待排序的数据表已经为有序时,花费时间反而最多的是(A)。
A.快速排序 B.希尔排序 C.冒泡排序 D.堆排序
8. 对有18个元素的有序表做折半查找,则查找A[3]的比较序列的下标依次为(C)。
A.1-2-3 B.9-5-2-3 C.9-5-3 D. 9-4-2-3
9. 下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是(D)。
A.堆排序 B.冒泡排序 C.快速排序 D.直接插入排序
10. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则做(B)型调整以使其平衡。
A.LL B.LR C.RL D.RR
二. 判断题(1分/题)
1.线性表的长度是线性表所占用的存储空间的大小。
F
2.双循环链表中,任意一结点的后继指针均指向其逻辑后继。
F
3.在对链队列做出队操作时,不会改变front指针的值。
F
4.如果两个串含有相同的字符,则说它们相等。
F
5.如果二叉树中某结点的度为1,则说该结点只有一棵子树。
T
6.已知一棵树的先序序列和后序序列,一定能构造出该树。
F
7.图G的一棵最小代价生成树的代价未必小于G的其它任何一棵生成树的代价。
T
8.图G的拓扑序列唯一,则其弧数必为n-1(其中n为顶点数)。
F
9.对一个堆按层次遍历,不一定能得到一个有序序列。
T
10.直接选择排序算法满足:
其时间复杂度不受数据的初始特性影响,为O(n2)。
T
三. 填空题(2分/空)
1.已知完全二叉树的第8层有8个结点,则其叶子结点数是(68)。
68+8-4
2.将下三角矩阵A[1..8,1..8]的下三角部分逐行地存储到起始地址为1000的内存单元中,已知每个元素占4个单元,则A[7,5]的地址是(1100)。
3.有n个顶点的强连通有向图G至少有(n)条弧。
4.有n个结点并且其高度为n的二叉树的数目是(2^(n-1))。
5.高度为8的平衡二叉树的结点数至少是(54)。
6.3个结点可构成(5)棵不同形态的树。
7、给出冒泡排序和快速排序的最好情况、平均情况和最坏情况下的时间复杂度。
四、设计一个算法,判断一个算术表达式中的括号是否配对。
算术表达式保存在带表头结点的单循环链表中,每个结点有两个域:
ch和link,其中ch域为字符类型。
南开大学98考研题
一、(8分)给出数组A∶ARRAY[3..8,2..6]ofINTEGER;当它内存中按行存放和按列存放时,分写出数组元素A[i,j]地址计算公式(设每个元素站两个存储单元)。
二、(12分)于对于有向无环图
叙述求拓扑有序序列的步骤;
对于以下的图,写出它的四个不同的拓扑有序序列
三、(12分)已知一棵二叉树按中序遍历时个结点被访问的次序和这棵二叉树按后序遍历时各结点被访问的次序,是否唯一确定这棵二叉树的结构?
为什么?
若已知一棵叉树按先序遍历时各结点被访问的次序和这棵按后序遍历时各结点访问的次序,能否唯一确定这棵二叉树的结构?
为什么?
七、写出在二叉排序树中删除一个结点的数法,使删除后仍为二叉排序树。
设删除结点由指针P所指,其双亲结点由指针f所指,并假设被删除结点是其双亲结点的右孩子。
用类PASCAL(或C)语言将上述算法写为过程形式。
(南开考研题)
八、给出一组关键字:
29,18,25,47,58,12,51,10,分别写出下列各种排序方法进行排序时的变化过程:
(南开考研题)
1.归并排序每归并一次书写一个次序。
2.快速排序每规划一次书写一个次序。
3.堆排序先建成一个堆,然后每从堆顶取下一个元素后,将堆调整一次
Test3
一、选择题(单项选择,每小题2分,共计20分)
1、在数据结构中,与所使用的计算机无关的是。
A.存储结构B.物理结构C.物理和存储结构D.逻辑结构
2、线性表采用链式存储结构时,其地址是。
A.必须是连续的B.一定是不连续的
C.部分地址必须是连续的D.连续与否均可以
3、在下列链表中不能从当前结点出发访问到其余各结点的是。
A.单链表B.单循环链表C.双向链表D.双向循环链表
4、设一个栈的进栈序列是a,b,c,d,进栈的过程中可以出栈,不可能的出栈序列是。
A.d,c,b,aB.c,d,b,aC.d,c,a,bD.a,b,c,d
5、设循环队列中数组的下标是0~N-1,其头尾指针分别为f和r,则其元素个数为。
A.r–fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N
6、串是。
A.不少于一个字母的序列B.任意个字母的序列
C.不少于一个字符的序列D.有限个字符的序列
7、对稀疏矩阵采用压缩存储,其缺点之一是。
A.无法判断矩阵有多少行和多少列
B.无法根据行列号查找某个矩阵元素
C.无法根据行列号计算矩阵元素的存储地址
D.使矩阵元素之间的逻辑关系更加复杂
8、以下说法错误的是。
A.一般在哈夫曼树中,权值越大的叶子离根结点越近
B.哈夫曼树中没有度数为1的分支结点
C.若初始森林中共有n棵二叉树,最终求得的哈夫曼树中共有2n-1个结点
D.若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下最终的哈夫曼树
9、任何一个无向连通图最小生成树。
A.只有一棵B.有一棵或多棵C.一定有多棵D.可能不存在
10、只有在顺序存储结构上才能实现的查找方法是法。
A.顺序查找B.二分查找C.树型查找D.哈希查找
二、填空题(每题1分,共计10分)
1、在一个长度为n的顺序表中向第i个元素(1≤i≤n)之前插入一个新元素时,需要向后移动
个元素。
2、只允许在表的一端进行插入,而在另一端进行删除元素操作的线性表称为。
3、若串S=’software’(串长度为8),其子串数目是个。
4、一个n×n的对称矩阵,如果以行或列为主序放入内存,则容量为。
5、对于广义表((a,b),(()),(a,(b)))来说,其有个元素。
6、某棵树的的结点A有3兄弟,而且结点B是A的双亲,则结点B的度是。
7、n个结点的二叉树,最大高度是。
8、克鲁斯卡尔(Kruskal)算法适用于求的网的最小生成树。
9、在各种查找方法中,其平均查找长度与结点个数n无关的查找方法是。
10、对关键字序列{13,11,54,26,14,36,77},用筛选法建堆,必须从键值为的开始。
三、应用题(每题10分,共计40分)
1、已知某二叉树中序遍历的结果是ABC,试画出其可能的二叉树五种形态。
(10分)
2、已知某带权无向图如下图所示。
图1.带权无向图G
(1)请用邻接矩阵法表示该图。
(4分)
(2)从顶点0出发,采用Prim算法画示最小生成树的过程。
(6分)
3、设散列表为T[0..12],散列函数为H(key)=key%13,给定键值序列是{39,36,28,38,44,15,42,12,06,25}。
(1)请画出用拉链法处理冲突时所构造的散列表。
(6分)
(2)求出在等概率情况下,查找成功时的平均查找长度。
(4分)
4、已知排序码值序列{17,18,60,40,7,32,73,65,85},排序后成后非递减序列,请写出冒泡排序每一趟的排序结果。
(10分)
四、算法阅读题(每题10分,共计20分)。
1、已知二叉树的结点数据类型如下:
typedefstructnode
{
ElemTypedata;//数据元素
structnode*lchild;//指向左孩子
structnode*rchild;//指向右孩子
}BTNode;
阅读下列二叉树算法,回答问题。
intfun1(BTNode*b)
{
intlchilddep,rchilddep;
if(b==NULL)
return0;
else
{
lchilddep=fun1(b->lchild);
rchilddep=fun1(b->rchild);
return(lchilddep>rchilddep)?
(lchilddep+1):
(rchilddep+1);
}
}
(1)该算法执行二叉树运算的什么功能?
(5分)
(2)若存在二叉树如图2所示,试问执行上述算法后,其执行结果是多少?
(5分)
图2.二叉树
2、已知线性表R数据类型如下:
#definemax100
Typedefstruct
{intkey
infotypeinfo;}Sqnode;
SqnodeR[max];
阅读下面算法,回答问题。
intfun2(sqnodeR[],intn,intk)
{inti=0;
R[n].key=k;
五、算法设计题(在下列算法的横线内填上适当的语句或表达式。
每空2分,共10分)
已知单链表的结点数据类型如下:
typedefstructLnode
{ElemTypedata;
StructLnode*next;
}LinkList;
假