2017年复旦大学数据结构(同等学力加试)考研复试核心题库
● 摘要
一、应用题
1. 已知一棵二叉树的后序遍历序列为EICBGAHDF , 同时知道该二叉树的中序遍历序列为CEIFGBADH , 试画出该二叉树。
【答案】该二叉树如图所示:
图
2. 请写出应填入下列叙述中( )内的正确答案。
排序有各种方法,如插入排序、快速排序、堆排序等。
设一数组中原有数据如下:15,13,20,18,12,60。下面是一组用不同排序方法进行一遍排序后的结果。
( )排序的结果为:12,13,15,18,20,60
( )排序的结果为:13,15,18,12,20,60
( )排序的结果为:13,15,20,18,12,60
( )排序的结果为:12,13,20,18,15,60
【答案】①快速排序②起泡排序③直接插入排序④堆排序
3. 已知一个大小为512个字长的存储,假设先后有6个用户申请大小分别为23,45,52,100,11和19的存储空间,然后再顺序释放大小为45,52,11的占用块。假设以伙伴系统实现态存储管理。
(1)画出可利用空间表的初始状态。
(2)画出为6个用户分配所需要的存储空间后可利用空间表的状态以及每个用户所得到的存储块的起始地址。
(3)画出在回收3个占用块之后可利用空间表的状态。
【答案】(1)因为可利用空间表的初始状态图如图1所示:
图1 可利用空间表的初始状态
(2)当用户申请大小为23的内存块时,因但没有大小为的块,只有大小为的块,
故将
的块分裂成两个大小为的块,其中一块挂到可利用空间表上,另一块再分裂成两个
大小为
的块。又将其中大小为的一块挂到可利用空间表上,
另一块再分裂成两个大小为的
块。其中一块的块挂到可利用空间表上,
另一块分裂成两个大小为的块,其中一块挂到可利用空间表上,另一块分给用户(地址0〜31)。如此下去,最后每个用户得到的存储空间的起始地址如图2所示,为6个用户分配所需要的存储空间后可利用空间表的状态如图3所示。
图2 每个用户得到的存储空间的起始地址
]
图3 可利用空间表的状态
(3)在回收时,因为给申请45的用户分配了大小为的块,其伙伴地址是0,在占用中,不能合并,只能挂到可利用空间表上。在回收大小为52的占用块时,其伙伴地址是192,也在占用。回收大小为11的占用块时,其伙伴地址是48,可以合并为大小的块,挂到可利用空间表上。所以回收3个占用块之后可利用空间表的状态如图4所示:
图4
4. 假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间。例如,“loading ”和“being ”的存储映像如图所示。