数据结构学习之二叉树

  这些天一直在准备毕业,写论文,改论文。现在差不多了,偷点闲,学习了一下二叉树,写点小总结,用以备忘。

  先说一下树的定义(ps:这些定义都是一些通俗理解,不是真正的官方定义):(1)树由多个节点和边组成。(2)每个节点只有一个父节点但可以有多个子节点。(3)在树中只有一个例外,该节点没有父节点,该节点称为父节点。

  再来几个专业术语:

  (1)深度:从根节点到最底层节点的层数,跟节点为第一层。

  (2)叶子结点:没有子节点的节点被称为叶子结点。

  (3)节点的度:即当前节点的子节点的个数。

  (4)树的度:树中节点度最大的那个。

 

  再来树的分类:

  一般树:任意一个节点的子节点的个数都不受限制的树。

  二叉树:任意一个节点的子节点的个数最多两个,且子节点的位置不可更改(二叉树一定是有序树)。

  无序树:即树中节点的子节点从左到右顺序可变的树为无序树,不可变的为有序树。

  满二叉树:在不增加层数的前提下无法增加任何一个节点。(即该树从左到右,从上到下已经满了)。

  完全二叉树:如果只是删除了满二叉树最底层最右边连续若干个节点,这样形成的树就是一个完全二叉树(很容易发现,满二叉树也是完全二叉树)。

 

  再来二叉树的三种遍历方法:

  先序遍历:(1)先访问根节点(2)在先序访问左子树(3)在先序访问右子树。示例如下图所示:

  中序遍历:(1)先访问左子树(2)在中序访问根节点(3)在中序访问右子树。示例如下图所示:

  后序遍历:(1)先访问左子树(2)在访问右子树(3)在访问根节点。示例如下图所示:

OK,就说这么多,有错误的地方欢迎大家指出来。

个人的小总结,欢迎转载,转载请标明出处。

posted @ 2016-06-07 17:17  hiyanxu  阅读(1339)  评论(0编辑  收藏  举报