西南民族大学数据结构考试模拟卷规范标准答案.docx
- 文档编号:5576723
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:8
- 大小:52.31KB
西南民族大学数据结构考试模拟卷规范标准答案.docx
《西南民族大学数据结构考试模拟卷规范标准答案.docx》由会员分享,可在线阅读,更多相关《西南民族大学数据结构考试模拟卷规范标准答案.docx(8页珍藏版)》请在冰豆网上搜索。
西南民族大学数据结构考试模拟卷规范标准答案
题号
一
二
三
四
五
六
七
八
九
十
总分
得分
一、请判断下列说法的是否正确:
(10分)
(1)若某堆栈的输入序列为1,2,3,4,则4,3,1,2不可能是堆栈的输出序列之一。
()
(2)队列逻辑上是一个表头和表尾既能插入又能删除的线性表。
()
(3)若一个叶子结点是某子树的中序遍历序列的最后一个结点,则它必是该子树的先序遍历中的最后一个结点。
()
(4)在索引顺序表上实现分块查找,在等概率查找情况下,其查找长度只与表中元素个数有关,而与每块中元素个数无关。
()
(5)二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值,小于其右孩子的值。
()
(6)在10万个随机排列的数据中,要选出5个最小的数,采用快速排序比采用Shell排序、堆排序及各种直接排序法都快。
()
(7)用邻接矩阵法存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与图中的结点的个数有关,而与图的边数无关。
()。
-
(8)在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和。
()
(9)二分查找法不仅适用于顺序存储的有序表,而且适合于链接表。
()
(10)按中序遍历一棵二叉排序树所得到的遍历序列是一个递增序列。
()
二、填空(20分)
(1)数据结构有如下四种基本结构:
、、、。
(2)在一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为。
(3)已知某二叉树的叶子结点的个数为10个,度为1的结点个数为8个,则该二叉树的结点总数为:
个。
(4)已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分检索值为90的元素时,需_____次比较可检索成功。
(5)、图的遍历方法主要有两个,一个是,另一个是。
(6)在哈希造表过程中,处理冲突的方法主要有:
,
,,。
(7)在一个单链表中p所指结点(p所指不是最后结点)之后插入一个由指针s所指结点,应执行s->next=_____;和p->next=________的操作。
(8).已知一棵二叉树的先序序列为ABCD,中序序列为BCAD,则它的后序序列为______。
(9)有N个顶点组成的无向连通图,最多可以___________条边。
(10)、若某序列的初始状态为{49,13,42,8,65,55,79},若以49为枢轴,则经过一趟快速排序之后的序列为:
。
三、单项选择题(每小题2分,共20分)
1.从一个长度为n的顺序表中删除第i个元素(1≦i≦n)时,需向前移动()个元素。
A).n-iB).n-i+1C).n-i-1D).i
2)、队列操作的原则是:
()
A)先进先出B)后进先出C)只能进行插入D)只能进行删除
3)下列算法中,()算法用来求图中每对顶点之间的最短路径。
A).DijkstraB).FloyedC).PrimD).Kruskal
4、下面关于线性表的叙述中,错误的是()
A)线性表采用顺序存储,必顺占用一片连续的存储单元。
B)线性表采用顺序存储,便于进行插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元
D)线性表采用链接存储,便于插入和删除操作。
5、对下面的有向图进行拓扑排序,其排序结果不正确的是:
()。
1
4
3
2
5
6
A)1、4、2、6、5、3B)1、2、4、6、3、5C)1、4、2、5、6、3
6、带头结点的单链表head为空的判定条件是:
()
A).head==NULLB.)head->next==NULL
C)、.head->next==headD).head!
=NULL
7、在所有排序方法中,关键字的比较次数与记录的初始排列无关的是________。
A)Shell排序B)冒泡排序C.)直接插入排序D)直接选择排序
8、设有两个串p和q,求q在p中首次出现的位置的运算叫__________。
A).模式匹配B).求子串C.)定位D).查找
9、将长度为n的单链表链接到长度为m的单链表之后的算法的时间复杂度为( )
A.)O(m)B.)O
(1)C.)O(n)D).O(m+n)
10、用线性探测法查找散列表,可能要探测多个散列地址,这些位置上的关键值()
A.)一定都是同义词B).一定都不是同义词
C).都相同D)不一定都是同义词
四、解答题 (30分)
1、对于给定的一组权值W={3,6,9,11,13,15,17,19}}画出Huffman树(要求结点左小右大),并给出每个结点的Huffman编码,计算该树的WPL。
(6分)
2、考虑下图:
(10分)
1)从顶点A出发,求它的深度优先生成树。
2)从顶点E出发,求它的广度优先生成树。
3)根据普里姆(Prim)算法,求它的最小生成树。
(从顶点A出发,要求给出计算过程)
3、已知待散列的线性表为(36,15,40,63,22),散列用的一维地址空间为[0..6],假定选用的散列函数是H(K)=K%7,若发生冲突采用线性探查法处理,试:
(1)计算出每一个元素的散列地址并在下图中填写出散列表;
(2)求出在查找每一个元素概率相等情况下的平均查找长度。
(6分)
0
1
2
3
4
5
6
4、对关键字序列(49,38,65,97,76,13,27,49)进行堆排序,使之按关键字非递增次序排列。
请写出排序过程中得到的初始堆和前二趟的序列状态。
(8分)
初始堆:
________
第1趟:
________
第2趟:
________
五、算法填空与设计(20分)
1、此为向以T为树根指针的二叉排序树上插入值为item的结点的递归算法。
(6分)
voidInsert(BiTree&T,ElemTypeitem)
{
if(T==NULL)
{p=(BiTree)malloc(sizeof(BiTNode));
p->data=item;
_______________________;
T=p;
}
elseif(item.key
else________________________;
}
其中:
二叉树的存储结构为:
typedefstructBiTNode{
ElemTypedata;
StructBiTNode*lchild,*rchild;
}BiTNode,*Bitree;
2、以下运算实现在循环队上的入队列,请在________________处用适当句子予以填充。
(6分)
statusEnQueue(SqQueue&Q,QElemTypex)
//插入元素x为Q的新的队尾元素
{if((Q.rear+1)%MAXQSIZE==________________)
{error(“队满”);return(ERROR);}
else{________________;
______________________________;
return(OK);
}
}
其中循环队列存储结构为:
#defineMAXQSIZE100
typedefstruct{
QelemType*base;
intfront;
intrear;
}SqQueue;
3、已知一个线性表中的元素按元素值非递减有序排列,编写一个程序删除线性表中多余的值相同的元素,并返回删除后线性表的长度(8分)
一(每小题1分:
)
1.正确2、错误3、正确4、错误5、错误6、错误7正确、8、正确9、错误10、正确
二、每小题2分
1、集合、线性结构、图结构、树结构
2、O(nlogn)
3、27
4、2次
5、深度优先搜索,广度优先搜索
6、1、开放地址法2、再哈希法3、链地址法4、建立一个公共的溢出区
7、s->next=p->nextp->next=s;
8、CBDA
9、1/2N*(N-1)
10、8134249655579
三、每小题2分
AABBCBDAAD
四、1)
19:
009:
0103:
01106:
011111:
10013:
101
15:
11017:
111;
WPL=(19*2+9*3+3*4+6*4+11*3+13*3+15*3+17*3)=269
2、
1)(有多种答案)
2)(有多种答案)
3)(计算过程略)
3、
(1)H(36)=36%7=1
H(15)=15%7=1冲突H1(15)=(15+1)%7=2
H(40)=40%7=5
H(63)=63%7=0
H(22)=22%7=1冲突H1(22)=(22+1)%7=2冲突H2(22)=(22+2)%7=3
0
1
2
3
4
5
6
63
36
15
22
40
(2)平均查找长度=(1+2+1+1+3)/5=1.6
4、初始堆:
13,38,27,49,76,65,49,97
第一趟:
27,38,49,49,76,65,97,13
第二趟;38,49,49,97,76,65,27,13
五、
1)p->lchild=NULL;p->rchild=NULL;
2)Insert(T->lchild,item);3)Insert(T->rchild,item)
4)==Q.front5)Q.base[Q.rear]=e;6)Q.rear=(Q.rear+1)%MAXQSIZE;
3、(8分)
typedefstruct{
ElemType*elem;
intlength;
intlistsize;
}SqList;
intdel(SqList&A)
{
inti=0,j;
while(i<=A.length-1)
if(A.elem[i]!
=A.elem[i+1])i++;
else
{
for(j=i;j A.length--; } returnA.length; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 民族大学 数据结构 考试 模拟 规范 标准答案