数据结构-C语言描述(第三版)张乃孝
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构-C语言描述(第三版)
高等教育出版社,张乃孝
第五章,二叉树与树
1. 用三个结点A,B,C可以构成多少种不同的二叉树?
0表示根结点,前一个1,2表示层数(1第一层,2第二层),后面的1,2.(1表示左子树,2表示右子树)
层数为1的情况(11
326
C C=)
A0B11C12,A0C11B12,B0A11C12,B0C11A12,C0A11B12,C0B11A12,
层数为2的情况(1111
322224
C C C C=)
A0B11C21,A0B11C22,A0B12C21,A0B12C22,A0C11B21,A0C11B22,A0C12B21,A0C12B22
B0A11C21,B0A11C22,B0A12C21,B0A12C22,B0C11A21,B0C11A22,B0C12A21,B0C12A22
C0A11B21,C0A11B22,C0A12B21,C0A12B22,C0B11A21,C0B11A22,C0B12A21,C0B12A22
总计30种情况。
2
先根次序周游ABECFDGHIJKL
中根次序周游EBFCDAIJKHGL
后根次序周游EFDCBKJIHLGA
4 .I(内部路径长度),E(外部路径长度),n(内部结点个数)
n=12
I=28
E=I+2n
E=52
8题
后根次序周游DGEBHJIFCA
10
根结点 a
叶结点efghd
分枝结点ac
a 度数3 层数0
b度数1 层数1
c度数3 层数1
d度数0 层数1
e,f,g,h度数0 层数2
1. 写一个算法来计算给定二叉树的叶结点数。
int num_of_leaves(BinTree t)
{
if (t = = NULL) return 0; /*空树,返回0*/
if (t->llink = = NULL && t->rlink = = NULL) return 1; /*根结点是树
叶,返回1*/ return num_of_leaves(t->llink) + num_of_leaves(t->rlink);
/*返回“左子树的叶结点数+右子树的叶结点数”*/ }