数据结构期末测试Word文档下载推荐.docx
- 文档编号:18201649
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:10
- 大小:98.75KB
数据结构期末测试Word文档下载推荐.docx
《数据结构期末测试Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构期末测试Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
A.O(log2n)B.O(2n)C.O(n2)D.O(n)
3.__A__又称为FIFO表。
A.队列B.散列表C.栈D.哈希表
4.若6行8列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个
存储单元,则第5行第3列的元素(假定无第0行第0列)的地址是___C_。
A.1086B.1032C.1068D.答案A,B,C都不对
6.有n(n>
0)个结点的完全二叉树的深度是__C__。
A.log2(n)B.log2(n)+1
C.log2(n+1)D.log2(n)+1
或者:
log2(n)+1
8.折半查找有序表(6,15,30,37,65,68,70,72,89,99),若查找元素37,需依次与表中元素___D_进行比较,。
A.65,15,37B.68,30,37
C.65,15,30D.65,15,30,37
9.对长度为10的表作选择(简单选择)排序,共需比较__A__次关键字。
A.45B.90C.55D.110
10.对n个元素的表作快速排序,在最坏情况下,算法的时间复杂度为__B__。
A.O(log2n)B.O(nlog2n)C.O(n2)D.O(2n)
二、填空(每空1分,共11分)
1.一个数据结构在计算机中的表示(映象)称为___存储结构(数据的物理结构)___。
2.线性表中(元素的个数)称为表的长度。
3.栈中元素的进出原则为____先进后出______。
4.设数组A[1..10,1..8]的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素A[4,5]的存储地址为_____;
若以列序为主序顺序存储,则元素A[4,5]的存储地址为______。
5.一棵深度为6的满二叉树有__63__个非终端结点。
6.若一棵二叉树中有8个度为2的结点,则它有__17___个叶子。
7.顺序查找n个元素的顺序表,当使用监视哨时,若查找成功,比较关键字的次数至少为__1__次,最多为__n-1__次;
若查找失败,比较关键字的次数为_n___次。
三、回答下列问题(每小题5分,共10分)
1.线性表的存储结构,在什么情况下采用顺序结构?
为什么?
答:
多查询,少插入、删除时;
因为顺序结构在查询时时间复杂度比链式结构的时间复杂度低!
2.二叉树有哪几种基本形态?
画图说明之。
答:
5种!
四、试画出下列存储结构图(每小题4分,共20分)
1.数组A[0..2,0..2]的以列序为主序的顺序存储结构。
{
{a[0][0],a[1][0],a[2][0]},
{a[0][1],a[1][1],a[2][1]},
{a[0][2],a[1][2],a[2][2]}
}
2.依次将元素A,C,D,B插入一个初始状态为空的链式栈中,试画出所有插入完成之后的链式栈。
3.二叉树的顺序存储结构:
A
C
B
D
E
G
F
01234567891011
4.图的邻接矩阵:
0111
1011
1101
1110
5.有向图的逆邻接表:
五、求解下列问题(每小题6分,共24分)
1.给定30个字符组成的电文:
DDDDDAAABEEAAFCDAACABBCCCBAADD
试为字符A、B、C、D、E、F设计哈夫曼(Huffman)编码。
(1)画出相应的哈夫曼树;
A:
0.33B:
0.13C:
0.17D:
0.27
E:
0.07F:
0.03
(2)分别列出A、B、C、D、E、F的哈夫曼码;
10
B:
O11
C:
O0
D:
11
0110
F:
0111
(3)计算该树的带权路径长度WPL
WPL=(1+2)*4+4*3+(5+10+8)*2=70
2.试按表(10,8,9,12,20,5,6,15,19,25)中元素的排列次序,将所有元素插入一棵初始为空的二叉排序树中,使之仍是一棵二叉排序树。
(1)试画出插入完成之后的二叉排序树;
(2)若查找元素17,它将依次与二叉排序树中哪些元素比较大小?
10、12、20、15、19
(3)假设每个元素的查找概率相等,试计算该树的平均查找长度ASL。
ASL=(1+2*2+3*3+4*3+5)/10
(4)对该树进行中序遍历,试写出中序遍历序列。
5、6、8、9、10、12、15、19、20、25
3.试将森林F={T1,T2,T3,T4}转换为一棵二叉树。
T1T2T3T4
4.找出下面网络的最小生成树。
六、填空题(在算法中有下划线____的位置填空,使之成为完整、正确的算法)
算法说明:
已知r[1..n]是n个记录的递增有序表,用折半查找法查找关键字为k的记录,若查找失败,则输出”Failure”,返回零;
否则输出”Success”,并返回该记录的序号值。
(共8分)
算法(C函数):
intbin_search(structarecordr[],intn,k:
keytype)
/*r[1..n]为n个记录的递增有序表,k为关键字*/
{intlow,mid,hig;
low=1;
hig=n;
/*各变量初始化*/
while(__low<
=high__)
{mid=___(low+high)/2______________;
if(k<
r[mid].key)____high=mid-1_____;
elseif(__k==r[mid].key__________)
{printf(“%s,%d”,”success”,mid+1)_;
break__________;
}
else__low=mid+1____________;
if(__low>
high_____________)
___printf(“Failure”)______________;
return
七、算法设计(算法中必须有注释,每小题8分,共16分)
1.设n个元素的线性表顺序存储在一维数组st[1..maxlen]的前n个位置上,试将新元素e插入表中第i-1个和第i个元素之间,写出算法。
参考:
P22
2.设Head为带表头结点的单链表的头指针,试写出算法:
若为非空表,则输出首结点和尾结点的值(data值);
否则输出:
”Emptylist!
”。
2.3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 期末 测试