2018年福州大学数学与计算机科学学院408计算机学科专业基础综合之数据结构考研强化五套模拟题
● 摘要
一、算法设计题
1. 已知二叉树T ,试写出复制该二叉树的算法(t→T) 。
【答案】算法如下:
复制二叉树t 的非递归算法
是二叉树的结点指针的队列,容量足够大
结束本题
2. 有二叉排序树采用二叉链表方式存放,树中结点值各不相同,欲得到一个由大到小的结点值递减序列,简述处理方法思路,用非递归形式写出算法。
【答案】算法如下:
按递减次序输出二叉排序树结点的值
是元素为二叉树结点指针的栈,容量足够大
沿右子树向下
结束
3. 写出按后序序列遍历中序线索树的算法。
【答案】算法如下:
求结点t 最左子孙的左线索
沿左分支向下
求结点t 最右子孙的右线索
沿右分支向下
若t 是
后序遍历中序线索二叉树
bt
沿左分支向下
左孩子为线索,右孩子为链,相当从左返回
P 为叶子, 相当从右返回
访问结点
修改P 指向双亲
是左子女,用最右子孙的右线索找双亲
.
转向当前结点右分支
结束
4. 请编写完整的程序。如果矩阵A 中存在这样的一个元素A[i,j]满足条件:A[i,j]是第i 行中值最小的元素,且又是第j 列中值最大的元素,则称之为该矩阵的一个马鞍点。请编程计算出m*n的矩阵A 的所有马鞍点。
【答案】算法如下:
//A是的矩阵,本算法求矩阵A 中的马鞍点
//max数组存放各列最大值元素的行号,初始化为行号
//min数组存放各行最小值元素的列号,初始化为列号
0 //选各行最小值元素和各列最大值元素
//修改第j 列最大元素的
行号
的右孩子,返回1, 否则返回
" 修改第i 行最小元素的
列号
//第i 行最小元素的列号
是马鞍点,
元素值是
是马鞍点
5. 对于任意的无符号的十进制整数m ,写出将其转换为十六进制整数的算法(转换仅要求能够输出正确的十六进制的整数即可) 。
【答案】算法如下:
//本算法将无符号十进制整数m 转换为十六进制整数
本算法的递归描述如下:
//本算法将无符号十进制整数m 转换为十六进制整数
//
二、应用题
相关内容
相关标签