一、选择(10’)
1、求算法时间复杂度
2、线性表链表比较
3、栈和队列比较
4、二叉树求叶子节点数
5、二叉树
6、图
7、输入序列 1,2,3,4,5,6 通过栈作用得到输出序列
A:534612 B;312546 C:325641 D:154623
8、二分查找长为 n 的线性表,每个元素查找长度?
9、哪个排序内存量要求最大?
10、快排什么时候最不好用
二、简答(6*8’)
1、已知一个广义表为 L=(c(a,b),c(d,e),f),(g,h,(i,j),k))
给出广义表长度、深度 head(head(L))和 tail(tail(L))
2、双链表结点互换位置,写修改指针的语句。
3、写出二叉树先序、中序、后序遍历的序列。
4、AOE 网标注每个结点最早/迟发生时间,画关键路径。
5、已知关键词序列{418,347,289,110,505,984,693,177}
按递增排序,求初始堆(画出初始堆状态)
6、二叉排序树,各结点值 1-9 填写
三、算法设计(13’,13’,22’,22’,22’)
1、设计判断单链表中结点是否关于中心对称的算法(3,4,5,4,3)则为对称
2、有个带头结点的单链表,头指针 head 将该链表按 data 域的值递增排序。
3、求一颗以孩子兄弟表示法存储的数的度
4、设计建立一颗二叉排序树的算法(以二叉链表方式存储)
5、假设图 G 建立,打印输出该图从顶点 x 出发经点 y 到点 z 的路径,已知 x,y,z
三者不同。若存在多条路径,只需输出一条若不存在,则打印输出“不存在路
径”。