1、 东北农业大学网络教育学院 数据结构作业题(一) 一、选择题(每题2分,共20分) 1.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为( )。 A、O(n) B、O (n/2) C、O (1) D、O (n2) 2.带头结点的单链表first为空的判定条件是( )。 A、first == NULL; B、first->link == NULL; C、first->link == first; D、first != NULL; 3.在一棵树中,( )没有前驱结点。 A、分
2、支结点 B、叶结点 C、树根结点 D、空结点
4.在有向图中每个顶点的度等于该顶点的( )。
A、入度 B、出度
C、入度与出度之和 D、入度与出度之差
5.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为( )的值除以9。
A、20 B、18 C、25 D、22
6.下列程序段的时间复杂度为( )。
s=0;
for(i=1;i 3、 C、O (2n) D、O (n2)
7.栈是一种操作受限的线性结构,其操作的主要特征是( )。
A、先进先出 B、后进先出 C、进优于出 D、出优于进
8.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( )。
A、(rear-front-1)%n B、(rear-front)%n
C、(front-rear+1)%n D、(rear-front+n)%n
9.高度为5的完全二叉树中含有的结点数至少为( 4、 )。
A、16 B、17 C、31 D、32
10.如图所示有向图的一个拓扑序列是( )
A、ABCDEF
B、FCBEAD
C、FEDCBA
D、DAEBCF
二、填空题(每空1分,共20分)
1.n (n﹥0) 个顶点的无向图最多有 条边,最少有 条边。
2.在一棵AVL树中,每个结点的左子树高度与右子树高度之差的绝对值不超过 。
3.已知8个数据元素为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为 。
4.在二叉树 5、的第i层上至多有 结点。
5.对于一棵具有n个结点的二叉树,若一个结点的编号为i(1≤i≤n),则它的左孩子结点的编号为 ,右孩子结点的编号为 ,双亲结点的编号为 。
6.数据的存储结构被分为 、 、 和 四种。
7.假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则树中所含的结点数为 个,树的深度为 ,树的度为 。
8.在一个具有n个顶点的无向图中,要连通所有顶点则至少需要 6、 条边。
9.在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着 、
和 的联系。
10.一棵含999个结点的完全二叉树的深度为 。
三、运算题(每题5分,共10分)
1.设有一个10´10的对称矩阵A,将其下三角部分按行存放在一个一维数组B中,A[0][0]存放于B[0]中,那么A[8][5]存放于B中什么位置。
2.已知一个有序表 ( 15, 26, 34, 39, 45, 56, 58, 63, 74, 76, 83, 94 ) 顺序存储于一维数组a[12]中,根据 7、折半搜索过程填写成功搜索下表中所给元素34, 56, 58, 63, 94时的比较次数。
元素值
34
56
58
63
94
比较次数
四、应用题(每题10分,共50分)
1.设待排序的记录共7个,排序码分别为8,3,2,5,9,1,6。
(1)用直接插入排序。试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。
(2)用直接选择排序。试以排序码序列的变化描述形式说明排序全过程(动态过程)要求按递减顺序排序。
2.判断下列序列是否是堆(可以 8、是小堆,也可以是大堆,若不是堆,请将它们调整为堆)。
(1)100,85,98,77,80,60,82,40,20,10,66
(2)100,98,85,82,80,77,66,60,40,20,10
(3)100,85,40,77,80,60,66,98,82,10,20
(4)10,20,40,60,66,77,80, 82,85,98,100
3.试找出分别满足下列条件的所有二叉树。
1)先序序列和中序序列相同 2)中序序列和后序序列相同
3)先序序列和后序序列相同 4)中序序列与层次遍历序列相同
9、
4.设T是一棵二叉树,除叶子结点外,其它结点的度数皆为2,若 T中有6个叶结点,试问:
(1)T树的最大深度Kmax=?最小可能深度Kmin=?
(2)T树中共有多少非叶结点?
(3) 若叶结点的权值分别为1,2,3,4,5,6。请构造一棵哈曼夫树,并计算该哈曼夫树的带权路径长度wpl。
5.一棵有n(n>0)个结点的d度树,若用多重链表表示,树中每个结点都有d个链域,则在表示该树的多重链表中有多少个空链域? 为什么?
储,则A[7,1]和A[2,4]的第一个字节的地址是 10、多少?
数据结构作业题(二)
一、选择题(每题2分,共20分)
1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A、HL=p; p->next=HL; B、p->next=HL; HL=p;
C、p->next=HL; p=HL; D、p->next=HL->next; HL->next=p;
2.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A、24 B、48 C、72 D、53
3.一个数 11、组元素a[i]与( )的表示等价。
A、*(a+i) B、a+i C、*a+i D、&a+i
4.下面程序段的时间复杂度为( )。
for(int i=0; i 12、合
6.在线性表的下列运算中,不改变数据元素之间结构关系的运算是( )。
A、插入 B、删除 C、排序 D、定位
7.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )。
A、3,2,6,1,4,5 B、3,4,2,1,6,5
C、1,2,5,3,4,6 D、5,6,4,2,3,1
8.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系( )。
A、不一定相同 B、都相同 C、都不相同 D、互为逆序
9.图的邻接矩阵表示法适用于表示( )。
A、无向图 B、有向图 13、C、稠密图 D、稀疏图
10.若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行比较的关键字依次为( )。
A、f,c,b B、f,d,b C、g,c,b D、g,d,b
二、填空题(每空2分,共40分)
1.含n个顶点的无向连通图中至少含有 条边。
2.若对关键字序列(43,02,80,48,26,57,15,73,21,24,66)进行一趟增量为3的希尔排序,则得到的结果为 。
3.一个算法的时间复杂度为(3n2+2nlog2n+4n-7)/(5n),其数量级表示为 14、 。
4.在以HL为表头指针的带表头附加结点的单链表和循环单链表中,链表为空的条件分别为 和 。
5.快速排序在平均情况下的时间复杂度为 ,在最坏情况下的时间复杂度为 。
6.假定对长度n=50的有序表进行二分查找,则对应的判定树高度为________,判定树中前5层的结点数为________,最后一层的结点数为________。
7.假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则度为3、2、1、0的结点数分别为 、 、 和 个。
8.在一棵二叉树 15、中,假定双分支结点数为5个,单分支结点数为6个,则叶子结点数为 个。
9.数据的逻辑结构被分为 、 、 和 四种。
10.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n+1)之前插入一个新元素时,需要从后向前依次后移 个元素。
三、应用题(每题10分,共60分)
1.设有5个互不相同的元素a、b、c、d、e,能否通过7次比较就将其排好序?如果能,请列出其比较过程;如果不能,则说明原因。
2.有一随机数组(25,84,21,46,13,27,68, 16、35,20),现采用某种方法对它们进行排序,其每趟排序结果如下, 则该排序方法是什么?
初 始:25,84,21,46,13,27,68,35,20 第一趟:20,13,21,25,46,27,68,35,84
第二趟:13,20,21,25,35,27,46,68,84 第三趟:13,20,21,25,27,35,46,68,84
3.请在( )内填入正确的排序方法。
设一数组中原有数据如下:15,13,20,18,12,60。下面是一组由不同排序方法进行一遍排序后的结果。
( )排序的结果为:12,13 17、15,18,20,60
( )排序的结果为:13,15,18,12,20,60
( )排序的结果为:13,15,20,18,12,60
4.设T是一棵二叉树,除叶子结点外,其它结点的度数皆为2,若 T中有6个叶结点,试问:
(1)T树的最大深度Kmax=?最小可能深度Kmin=?
(2)T树中共有多少非叶结点?
(3) 若叶结点的权值分别为1,2,3,4,5,6。请构造一棵哈曼夫树,并计算该哈曼夫树的带权路径长度wpl。
5.一棵有n(n>0)个结点的d度树,若用多重链表表示,树中每个结点都有d 18、个链域,则在表示该树的多重链表中有多少个空链域? 为什么?
6.有一个二维数组A[0:8,1:5],每个数组元素用相邻的4个字节存储,存储器按字节编址,假设存储数组元素A[0,1]的第一个字节的地址是0,那么存储数组的最后一个元素的第一个字节的地址是多少?若按行存储,则A[3,5]和A[5,3]的第一个字节的地址是多少?若按列存储,则A[7,1]和A[2,4]的第一个字节的地址是多少?
数据结构作业题(三)
一、单选题(每题2分,共10分)
1、在长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n)时,需要从 19、前向后依次前移 个元素。
A、n-i B、n-i+1 C、n-i-1 D、i
2、设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为 。
A、O(1) B、O(n) C、O(n2) D、O(log 2 n)
3、假定一个顺序队列的队首和队尾指针分别为f和r,则判断队空的条件为 。
A、f+1==r B、r+1==f C、f==0 D、f==r
4、由3 个结点可以构造出多少种不同的二叉 20、树 。
A、2 B、3 C、4 D、5
5、适用于折半查找的表的存储方式及元素排列要求为 。
A、链接方式存储,元素无序 B.链接方式存储,元素有序
C、顺序方式存储,元素无序 D.顺序方式存储,元素有序
二、填空题(每空1分,共25分)
1、在线性结构、树结构和图结构中,前驱和后继结点之间分别存在着 、
和 的联系。
2、在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为 21、 ,若假定p为一个数组a中的下标,则其后继结点的下标为 。
3、在初始化一个稀疏矩阵的函数定义中,矩阵形参应说明为 参数。
4、栈又称为 表,队列又称为 表。
5、后缀表达式“4 5 + 3 * 2 4 + * ”的值为 。
6、一棵深度为5的满二叉树中的结点数为 个,一棵深度为3的满四叉树中的结点数为 个。
7、对于一棵含有40个结点的理想平衡树,它的高度为 22、 。
8、从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明 ,若元素的值小于根结点的值,则继续向 查找,若元素的值大于根结点的值,则继续向 查找。
9、对于一个具有n个顶点的图,若采用邻接矩阵表示,则矩阵大小为 。
10、对于一个具有n个顶点和e条边的连通图,其生成树中顶点数和边数分别为
和 。
11、二分查找过程所对应的判定树既是一棵 ,又是一棵 。
12、在归并排序中,进行每趟归并的时间复杂度为 23、 ,整个排序过程的时间复杂度为 ,空间复杂度为 。
13、给定一组数据{6,2,7,10,3,12}以它构造一棵哈夫曼树,则树高为__________,带权路径长度WPL的值为__________。
三、运算题(每题6分,共24分)
1、假定一棵普通树的广义表表示为 a(b(e),c(f(h,i,j),g),d),分别写出先根、后根、按层遍历的结果。
先根: 。
后根: 24、 。
按层: 。
2、已知一个带权图的顶点集V和边集G分别为:
V = { 0,1,2,3,4,5,6,7};
E = {(0,1)8,(0,2)5,(0,3)2,(1,5)6,(2,3)25,(2,4)13,
(3,5)9,(3,6)10,(4,6)4,(5,7)20 };
则求出该图的最小生成树的权。
最小生成树的权: 。
3、对于线性表(18,25,63,50,42,32,90,6 25、6)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为0的元素有 个,散列地址为3的元素有 个,散列地址为5的元素有 个。
4、假定一组记录的排序码为(46,79,56,38,40,80,25,34),在对其进行快速排序的过程中,对应二叉搜索树的深度为 ,分支结点数为 。
四、阅读算法(第一题7分,第二题8分)
1、void AA(LNode * & HL)
{
InitList(HL);
InsertRear(HL,30);
Insert 26、Rear(HL,50);
int a[5] = {15,8,9,26,12};
for ( int i=0; i<5; i++ ) InsertFront(HL,a[i]);
}
该算法被调用执行后,得到的以HL为表头指针的单链表中的数据元素依次为: 。
2、void AH(Heap & HBT , const ElemType item)
// HBT为一个小根堆
{
HBT.heap[HBT.size]=item;
27、 HBT.size++;
ElemType x=item
int i=HBT.size-1;
while ( i != 0 ){
int j=(i-1)/2;
if ( x>=HBT.heap[j]) break;
HBT.heap[i]=HBT.heap[j];
i=j;
}
HBT.heap[i]=x;
}
该算法的功能为:






