数据结构笔记——第六章 树与二叉树

7.1 树

基本定义

 

树:由n(n>=0)个结点构成的集合

结点:由数据元素和构造数据元素之间关系的指针组成

结点的度:结点所拥有子树的个数

叶结点:度为0的结点,又称为终端结点

分支节点:度不为0的结点,又称为非终端结点

孩子节点:树中一个结点的子树的根节点

双亲节点:若树中某结点有孩子结点,则这个结点就称为这个结点的孩子节点

兄弟节点:具有相同的双亲结点的结点

树的度:树中所有结点的度的最大值

结点的层次:从根结点到树中某结点所经路径上的分支数

树的深度:树中所有结点的层次的最大值

无序树:一棵树中任意一个结点的各子树从左到右是无序的,通常,树指的是无序树

有序树:一棵树中任意一个结点的各子树从左到右是有序的

森林:m(m>=0)棵树的集合

 

 

树的表示方法

 

1、直观表示法(主要用于直观描述树的逻辑结构)

 

2、形式化表示法(树的理论描述)

 

 

3、凹入表示法(主要用于树的屏幕显示和打印机输出)

结点逐层缩进的表示方法,分为横向凹入表示法和竖向凹入表示法

 

树的抽象数据类型

 

数据集合:树的结点集合,每一个结点由数据元素和构造数据元素之间关系的指针组成

操作集合:

 

树的存储结构

分类:双亲表示法、孩子表示法、双亲孩子表示法和孩子兄弟表示法

 

1、双亲表示法

双亲表示法:使用指针(仿真指针)表示出每个结点的双亲结点,每一个结点包含两个域(数据域data和指示其双亲结点在数组中下标序号的仿真指针域parent)

 

 

优缺点:寻找一个结点的操作实现很方便,但寻找一个结点的孩子节点的操作不方便

 

2、孩子表示法

孩子表示法:用指针表示出每个结点的孩子节点

 

 

优缺点:

 

7.2 二叉树

 

7.3 二叉树的设计和实现

 

7.4 二叉树遍历

 

7.5 二叉树的打印和查找

 

7.6  哈夫曼树

 

7.7  哈弗曼编码

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_40270579/article/details/81099901