数据结构学习笔记五:树和二叉树

来源:互联网 发布:红米note3网络设置 编辑:程序博客网 时间:2024/05/17 01:33

一、树

1、:是n个结点的有限集

2、:有且仅有一个

3、子树

4、结点

5、:结点拥有的子树数

6、叶子或者终端结点:度为0的结点

7、非终端结点或分支结点:度不为0的结点

8、孩子、双亲、兄弟、子孙、堂兄弟

9、层次:从根开始定义起,根为第一层,根的孩子为第二层

10、树的深度:树中的结点的最大层次

11、有序树、无序树


二、森林


三、二叉树

1、二叉树:每个结点至多只有两棵子树,并且二叉树的子树有左右之分

2、二叉树的5种基本形态(空二叉树)|(仅有根结点的二叉树)|(右子树为空的二叉树)|(左、右子树均非为

空的二叉树)|(左子树为空的二叉树)

3、二叉树的三个性质

4、满二叉树、完全二叉树

5、完全二叉树的性质

6、树的存储结构:顺序存储结构、二叉链表、三叉链表、线索链表

1)顺序存储结构

a)完全二叉树和一般二叉树的顺序存储结构表示

b)在最坏情况下,一个深度为k且只有k个结点的二叉树需要的存储单元?

2)二叉树和三叉树的存储结构

a)二叉树:数据域、左指针域、右指针域(图6.8)

b)三叉树:数据域、左指针域、右指针域、双亲指针域(图6.8)


四、遍历二叉树

1、先序(根)排序(实现?)

2、中序(根)排序(实现?)

3、后序(根)排序(实现?)

4、表达式a+b*(c-d)-e/f (前缀表达式|中缀表达式|后缀表达式)

5、【算法】二叉树的中序非递归遍历算法

6、【算法】二叉树的层序遍历算法

7、【算法】建立二叉树算法

8、遍历算法的时间复杂度和空间复杂度


五、线索二叉树

1、线索二叉树的存储结构

2、线索化:对二叉树以某种次序遍历使其变为线索二叉树的过程

3、如何在线索树中找结点的后继?(中序线索树?)(后序线索树?)

4、线索二叉树的存储结构

5、【算法】以双向线索链表为存储结构时对二叉树进行遍历算法

6、【算法】二叉树的线索化


六、树

1、树的存储结构:双亲表示法孩子表示法孩子兄弟表示法

2、树的双亲表示法(图6.13)

3、孩子表示法(图6.14孩子链表|带双亲的孩子链表)

4、孩子兄弟表示法(图6.15)

5、森林与二叉树的转换(图6.16)|图6.17)

6、树和森林的遍历

1)树的先根遍历、树的后根遍历

2)森林的先序遍历、森林的中序遍历

7、森林的先序和中序遍历即为对应的二叉树的先序和中序遍历


七、树与等价问题


八、huffman树及其应用

1、树的路径长度

2、树的带权路径长度

3、最优二叉树或者哈夫曼树:带权路径长度最小

4、如何构造哈夫曼树

5、哈夫曼树编码(实现?)(例6.2


九、回溯法与树的遍历


十、树的计数

1、含有n个结点的不相似的二叉树有多少课

2、例6-5



0 0
原创粉丝点击