数据结构-C语言描述(第三版)张乃孝

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

/*返回“左子树的叶结点数+右子树的叶结点数”*/ }

相关文档
最新文档