二叉树前言

来源:互联网 发布:网络诈骗有哪些例子 编辑:程序博客网 时间:2024/04/29 21:14

本篇章主要是二叉树的学习和描述.首先,老生常谈,说下二叉树的定义.

二叉树(Binary tree)是n(n≥0)个结点的有限集合。
若n=0时称为空树,否则:
⑴ 有且只有一个特殊的称为树的根(Root)结点;
⑵ 若n>1时,其余的结点被分成为二个互不相交的子集T1,T2,分别称之为左、右子树,并且左、右子树又都是二叉树。
由此可知,二叉树的定义是递归的。所以关于很多二叉树的算法实现我们都可以根据它定义的递归性质进行实现,或者在递归的过程中加入一些剪枝判断实现.

二叉树这个篇章算法主要分为三块内容
1,二叉树的创建,二叉树的遍历(先序,中序,后序的递归与非递归实现,层次遍历的实现以及带行号的二叉树层次遍历)

2,二叉树的宽度,高度,二叉树节点个数(总节点个数,叶子节点,度为1的节点,度为2的节点)

3,二叉树的左右子树交换,查找节点在二叉树中的层数,叶子节点到根节点的逆路径,任意两个节点的公共祖先(LCA, Lowest Common Ancestor)

代码下载

0 0