摘要:
最优二叉树是带权路径长度最短的二叉树。根据结点的个数、权值的不同,最优二叉树的形状也各不相同。图634 是3 棵最优二叉树的例子。它们的共同特点是:带权值的结点都是叶子结点。权值越小的结点,其到根结点的路径越长。构造最优二叉树的方法如下:(1) 将每个带有权值的结点作为一棵仅有根结点的二叉树,树的... 阅读全文
摘要:
// c6-5.h 树的二叉链表(孩子—兄弟)存储结构(见图6.32)typedef struct CSNode{ TElemType data; CSNode *firstchild,*nextsibling;}CSNode,*CSTree;一棵树无论有多少叉,它最多有一个长子和一个排序恰在其下的... 阅读全文
摘要:
c6-4.h(见图627 所示)是用顺序结构存储树的。它是定长的(100 个结点),由n 来确定有效结点数。parent 域的值为-1 的是根结点。图628 是教科书中图6.13 所示之树及其双亲表存储结构。// c6-4.h 树的双亲表存储结构(见图6.27)#define MAX_TREE_... 阅读全文
摘要:
遍历二叉树遍历二叉树就是按某种规则,对二叉树的每个结点均访问一次,而且仅访问一次。这实际上就是将非线性的二叉树结构线性化。遍历二叉树的方法有先序、中序、后序和层序4 种,访问的顺序各不相同。以图61(a)所示二叉树为例,先序遍历的顺序为1 2 3 4;中序遍历的顺序为3 2 4 1;后序遍历的顺序... 阅读全文
摘要:
// c6-6.h 二叉树的三叉链表存储结构(见图6.15)typedef struct BiTPNode{ TElemType data; BiTPNode *parent,*lchild,*rchild; // 双亲、左右孩子指针}BiTPNode,*BiPTree;二叉树的三叉链表存储结构比二... 阅读全文