苏州大学872考研试题12-15

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、在任何需要数据反转的问题里,首先应考虑用来保存数据。

2、在顺序线性表下,根据位置position来进行元素的插入和删除,主要的时间花费在;在单链表下进行元素的插入和删除,主要时间花费在。

3、一个10×10的矩阵,如果以行为主序存入内存,则其容量为。设a11是第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为。

4、在线性表改进的单链表实现方法中,我们定义了一个current指针指向最近访问过的结点,定义的方法是:mutable Node *current;请解释这里mutable的作用:。

5、用二分查找方法进行查找,要求数据文件应为,且限于

存储结构。

6、在哈希查找中,评判一个哈希函数优劣的两个主要指标是:______________ 和。

7、快速排序的最坏时间复杂度为;平均时间复杂度为。

8、图的遍历算法有两种:和。

9、由三个结点构成的二叉树,共有种不同的结构。

二、应用题(40分)

1、设有n个无序记录的顺序表(每一条记录由一个对应的关键字),简述利用二叉查找树对此记录表进行树排序的方法。(10分)

2、队列采用顺序结构实现(linear implementation)时,随着元素的出队,数组开始处的空间不能再次利用。如何解决这个问题?(10分)

(10分)

K

G

4、简述堆排序的基本方法,并对键值集合,{72,73,71,23,94,16,05,68}对应的二叉树建大顶堆。(10分)

三、算法设计题(30分)

1、设计一个递归算法,计算二叉树叶结点数目。(10分)

template

int Binary_tree :: recursive_leafcount(Binary_node *sub_root) const 2、以顺序存储结构实现两个有序表A、B的合并,合并结果放在A中。不可采用另外的辅助数组空间。(10分)

Error_code connect(List &a , const List &b)

3、已知线性表的元素按递增顺序排列,并以带头结点的单链表作为存储结构。试编写算法删除表中所有值大于min且小于max的元素(若表中存在这样的元素)的算法。(10分)

template

Error_code List :: delete_min_max (List_entry min, List_entry max ) 1、下面程序段中带下划线的语句的执行次数的数量级是。

i=1;

while (i

for (j=1 ;j<=n; j++){

x=x+1;

i=i*2;

}

2、线性结构是一种一对一的结构,元素之间的关系是一对一的;树形结构是一种的结构。

3、若某个线性表的最常用的操作是存取第i个元素及其前驱的值,则采用_______________存储方式比较好。

4、在双向循环链表中,设指针p指向待删除的结点,则删除结点*p需执行的语

句为:。

5、设有一个空栈,栈顶指针为1000H,现有输入序列为1,2,3,4,5,经过push、push、pop、push、pop、push、push操作,输出的序列为。

6、对一棵完全2-树的每个结点从1开始进行编号,编号的方法是从根开始,从左到右,从上到下。则编号为k的结点,其左孩子如果存在则编号为,右孩子如果存在编号为。

7、按遍历二叉排序树,可以得到按值递增的关键字序列,在图中所示的二叉树中,查找关键字85的过程中,需与85进行比较的关键字序列为。

8、哈希查找中解决冲突的方法主要有:、。

9、判断一个有向图是否存在回路,可以采用方法。

10、二维表格在计算中的存储表示的实质即是把二维的表格一维化,通常采用的方法有:和方式。

11、对记录进行顺序查找时,有时我们可以先把待查记录插入到查找表的尾部,然后再从头到尾进行查找,这种做法称为采用监视哨的方法。该方法的优点是:。

二、应用题(40分)

1、已知一组元素为(45,25,80,60,18,30,12,40,70),试画出按元素输入排列顺序而生成的二叉排序树,求出等概率情况下查找成功与不成功时的平均查找长度。(10分)

2、已知一个图G=(V,E),其中:(10分)

V={a,b,c,d,e,f}

E={,,,,,,,}

(1)请画出该图,并写出邻接矩阵。

(2)根据邻接矩阵,分别给出从顶点a出发的深度优先和优先遍历序列。

(3)画出由此得到的深度优先和广度优先生成树。

3、已知一棵二叉树的中序序列为:BAFDJGCKHLEIM,后序序列为:

BFJGDKLHMIECA。请完成:(10分)

(1)构造这棵二叉树。

(2)将这棵二叉树转化成树或森林。

4、一项工程P由P1、P2、P3…P6六项子工程组成,这些工程之间有下列关系,P1

二、算法设计题(30分)

1、单链表中存放着n个字符,试设计算法判断该字符串是否中心对称,如xyzzyx

即为中心对称的字符串。(可利用栈作为辅助量)(10分)

bool List :: is_ symmetrical ()

2、以二叉链表作为存储结构写出求二叉树结点总数的递归算法。(10分)template

int Binary_tree :: recursive_nodecount(Binary_node *sub_root) const 3、将循环队列类定义为含有一个数组entry[0..maxqueue-1]以存放循环队列中的

元素,还含有两个变量rear和len分别指示循环队列中队尾元素的位置和内含元素的个数。请设计此队列类和相应的出队的算法。(10分)

1、排序算法的性能下限用时间复杂度表示为。

2、在有序表A[1..20]中,采用二分查找算法查找元素值等于A[12]的元素,所比较过的元素的下标依次为:。

相关文档
最新文档