习题三
3.1 设计一个算法判别一个算术表达式的圆括号是否正确配对。
3.2* 假设称正读和反读都相同的字符序列为“回文”,例如,“abcddcba”、 “qwerewq”是回文,“ashgash”不
是回文。是写一个算法判断读入的一个以‘@’为结束符的字符序列是否为回文。
3.3 已知一个多项式 F
n
(X),可递归定义如下:
试写出计算 F
n
(X)值的递归函数。
习题五
5.1 数组 A 中,每个元素 A 的存储占 3 个单元,行下标 i 从 1 到 8,列下标 j 从 1 到 10,从首地址 SA 开始
连续存放在存储器内,存放该数组至少需要的单元个数是( (1) ),若该数组按行存放时,元素
A[8][5]的起始地址是( (2) ),若该数组按列存放时,元素 A[8][5]的起始地址是( (3) )。
(1)A. 80 B.100 C.240 D.270
(2)A.SA+141 B.SA+144 C.SA+222 D.SA+225
(3)A.SA+117 B.SA+180 C.SA+222 D.SA+225
5.2 假设按行优先存储整数数组 A[9][3][5][8]时,第一个元素的字节地址时 100,每个整数占 4 个字节。
问下列元素的存储地址是什么。
(1) a
0000
的地址是 100
(2)a
1111
的地址是 776
(3)a
3125
的地址是 1 784
5.3 求下列广义表的操作结果
// getHead 得到的是一个原子,而 getTail 得到的却是原子外组成的新的广义表
GetHead[((a),a)] =(a)
GetTail[((a),a)]=(a)
GetTail[GetHead[((a,b),(c,d))]]=(b)
GetHead[GetHead[((a,b),(c,d))]]=(b)
习题六
6.1 试分别画出具有 3 个结点的树和 3 个结点的二叉树的所有不同形态。
6.2 已知一棵度为 m 的树中有 n
i
个(i=1,2,…,m)度为 i 的结点,问该树中有多少个叶子结点?
6.3 证明:一棵满 k 叉树上的叶子结点数 n
0
和非叶子结点数 n
1
之间满足如下关系: n
0
=(k-1)n
1
+1。
6.4 已知二叉树:
1 画出该二叉树的顺序存储结构和二叉链表存储结构。
2 写出该二叉树的前序、中序、后序、层次遍历序列。
3 画出该二叉树的前序、中序、后序线索化树。
第 4 页 共 19 页
F
n
(X) =
1 当 n = 0 时
2X 当 n = 1 时
2X F
n-1
(X)-2(n-1)F
n-2
(X) 当 n>1 时