目录
3、树的存储形式:双亲表示法、孩子链表表示法、孩子兄弟表示法、二叉链表表示法
1、线索
左前驱,右后继,0指针,1线索
2、哈夫曼
①
解:
②
解析:求几种编码就是求叶子节点有几个
③若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为()
解析:
这题表示哈夫曼树的节点 的度要么是0要么是m
设度不为0(即非叶结点)的个数为X
则总的结点数为:X+n
除根结点外,其余的每一个结点都有一个分支连向一个结点,对于度为m的每个结点都有m个分支,而度为0的结点是没有分支的,所以从分支的情况来看
总的结点数位:X*m + 1(这里的1为根结点)
两者相等,所以答案是 (n-1) / (m-1)
3、树的存储形式:双亲表示法、孩子链表表示法、孩子兄弟表示法
双亲表示法
以上为双亲表示法,其parent存的是父节点数组下标,让每个结点记住其父结点的位置。存储数据元素的结点由两部分组成:存储数据元素值的数据字段,以及存储父结点位置的父指针字段。树的所有结点可存放在一个数组中(称“静态双亲表示法”),也可组织成一个链表(称“动态双亲表示法”)
孩子表示法,其存的是父亲节点的下标
孩子兄弟表示法
二叉链表表示法
4、遍历
解:
树:不是二叉树;先把此树按照“左孩右兄”的方式转为二叉树,再将写出转为二叉树后的先、中、后遍历,进行比对,如:
②
解析:
有向树:
定义:满足下列条件的有向图被称为有向树。
(1)有且仅有一个结点的入度为0;
(2)除树根外的结点入度为1;
(3)从树根到任一节点有一条有向通路。
因此,有向树不一定是有序树,故上诉答案为A 不是用Cauclate() 方法计算
③问题的关键在于创建“分支与节点的关系”
5、定义
解析:
一棵度为二的有序树与一棵二叉树的区别在于: 有序树的结点次序是相对于另一结点而言的,如果有序树中的子树只有一个孩子时,这个孩子结点就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次序,也就是说二叉树的结点次序不是相对于另一结点而言而是本身就是确定的。