数据结构模拟试卷(一)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C.在进行插入、删除操作时,能更好地保证链表不断开
D.已知某个结点的位置后,能够容易找到它的直接前趋
10.已知一棵树的前序遍历是”GDAFEMHZ”,而中序遍历是”ADEFGHMZ”,求后序遍历?
A.ADEFGHMZ B.DAEFHZMG
C.AEFDHZMG D.AFEDHMZG
11.一个包含n个节点的四叉树,每个节点都有四个指向孩子节点的指针,这4n个指针中有多少个空指针?
①每个结点至少有两棵非空子树
②树中每个结点至多有m-1个关键字
③所有叶子在同一层上
④当插入一个数据项引起B树结点分裂后,树长高一层
A.①②③
B.②③
C.②③④
D.③
20.设串长为n,模式串长为m,则KMP算法所需的附加空间____。
A.O(m)
B.O(n)
C.O(m*n)
D.O(nlog2m)
二、判断题(每题3分,共8题,计24分)
数据结构模拟试卷(一)
一、选择题(每题2分,20题,共40分)
1.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为()。
A.1140 B.1145
C.1120 D.1125
2.下面的序列中,()是堆。
A.1,510,6,7,8,9,2 B.1,2,8,4,3,9,10,5
A.2n+1 B.3n-1 C.3n D.3n+1
12.和顺序栈相比,链栈有一个比较明显的优势是()
A.通常不会出现栈满的情况
B.通常不会出现栈空的情况
C.插入操作更容易实现
D.删除操作更容易实现
13.设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,则T中的叶子数为()
A.5 B.6 C.7 D.8
14.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()
A.2个B.6个C.3个D.4个
15.设图G的相邻矩阵如下图:则G的顶点数和边数分别为()
01111
10100
11011
10101
10110
A.4,5 B.4,10 C.5,6 D.5,8
16.用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为()
struct record{int key; int others;};
int bisearch(struct record r[ ], int k)
{
int low=0,mid,high=n-1;
while(low<=high)
{
_______________;
if(r[mid].key==k) return(mid+1); else if(_____) high=mid-1;else low=mid+1;
5.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的出栈的不同排列个数为( )
A.4 B.5 C.6 D.7
6.关键路径是AOE网中的______。
A.从源点到汇点的最长路径
B.从源点到汇点的最短路径
C.最短的回路
D.活动的最早开始时间与最迟发生时间相等
7.已知数据元素为( 32,75,46,19,26,56,93,66 ),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为()。
int numberofleaf (JD *r)
{
int num;
if (r=NULL) num=0;
else if(r->firstchild==NULL) num =⑴+numberofleaf (r->nextbrother); else⑵;
return(num);
}
3.下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。
{
int dep1,dep2;
dep1=;
dep2=;
if (dep1>dep2);
return;
}
}
2.一棵树以孩子兄弟表示法存储,递归算法numberofleaf计算并返回根为r的树中叶子结点的个数(NULL代表空指针)。
typedef struct node{strBiblioteka Baiduct node *firstchild , *nextbrother; }JD;
A.8 B.5 C.6D.9
17.如下图所示,在下面的5个序列中,符合深度优先遍历的序列有多少()
aebdfc acfdeb aedfcb aefdcb aefdbc
A.5个B.3个C.2个D.4个
18.以下与数据的存储结构无关的术语是()
A.循环队列B.链表C.哈希表D.栈
19.下面关于m阶B树说法正确的是()
A.4 B.5 C.7 D.6
8.下列说法不正确的是______。
A.图的遍历是从给定的源点出发,每一个顶点仅被访问一次
B.遍历的基本算法有两种:深度遍历和广度遍历
C.图的深度遍历不适用于有向图
D.图的深度遍历是一个递归过程
9.单循环链表的主要优点是()。
A.从表中任一结点出发都能扫描到整个链表
B.不再需要头指针了
6.
1.请给出每个顶点的度,入度和出度。(4)
2.请画出其邻接矩阵、邻接表、逆邻接表、十字链表。(12)
4.设计先序遍历二叉树的非递归算法(12分)
5.设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字母构成,它们在电文中出现的频率分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04},回答下列问题:
⑴为这7个字母设计哈夫曼编码并画出哈夫曼树(7)
⑵若对这7个字母进行等长编码,至少需要几位二进制数?(3)
C.9,8,7,6,4,8,2,1 D.9,8,7,6,5,4,3,7
3.二叉树上结点的左子树深度减去其右子树深度称为该结点的平衡因子。平衡二叉树中任意结点的平衡因子只能是()。
A.0 B.0,1 C.-1,0,1 D.1
4.栈和队列的共同特点是:
A.都是先进先出B.都是先进后出
C.只允许在端点处插入和删除元素D.没有共同点
1.栈和链表是两种不同的数据结构()。
2.二叉树中每个结点的两棵子树的高度差等于1()。
3.任一查找树(二叉分类树)的平均查找时间都小于用顺序查找法查找同样结点的线性表的平均查找时间()
4.若装填因子a为1,则向哈希表中散列元素时一定会产生冲突()
5.堆肯定是一棵平衡二叉树()
6.有向图的邻接表和逆邻接表中表结点的个数不一定相等。( )
}
return(0);
}
四、应用题(6题,共70分,如果是算法设计,请务必添加必要的注释!!)
1.试写一个算法判别读入的一个以‘@’为结束符的字符序列是否是“回文”。(10分)
2.将两个非递减有序的单链表归并成一个,仍并保持非递减有序。(10分)
3.求所有包含在串s中而t中没有的字符构成的新串r(12分)
7.二叉树中所有结点个数是 -1,其中k是树的深度()。
8.向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。()
三、算法填空(每空2分,8空,共16分)
1.计算二叉数的的深度。
int BtreeDepth (BTreeNode *BT)
{
if (BT==NULL)
return 0;
else
相关文档
最新文档