前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二叉树

二叉树

作者头像
lwen
发布2018-04-17 16:21:43
4880
发布2018-04-17 16:21:43
举报
文章被收录于专栏:Java 源码分析Java 源码分析

1.二叉树的性质

1.具有 n 个节点的二叉树第 n 层最多2的 n-1 次方个节点
2.具有 n 个节点的二叉树最多有 2 的 n 次方减 1 个节点
3.度为 0 的节点数等于度为 2 的节点数加 1

节点度的关系 n=n0+n1+n2 边的条数就是 n-1 ,也就是节点的关系的个数 另外一方面就是从父亲的方面来看就是利用度来计算 n0*0+n1*1+n2*2 也就是从不同的角度来理解这个东西获得一个等式从而得到的

2.两个小概念:

满二叉树:所有的节点排满了 完全二叉树:按顺序从左向右排放可以不满

3.线索化

1.中序线索化

rtag=0 右子树最左边的节点 rtag=1 rchild 指向

ltag=0 左子树的最右边节点 ltag=1 lchild 指向

4.树

任何一棵树我们如果使用孩子兄弟表示法的话 我们自然就会把这个树转化成一个二叉树

当然也可以使用双亲表示法,就是用map 然后记录双亲的位置 也可以使用孩子表示法就是使用一个索引链表 也可以把上面两个方法结合起来就是使用双亲孩子表示法

5.层序遍历

就是先把根节点放在队列里面,然后只要这个队列不空的话,就访问这个节点然后出队,然后分别把这个节点的左右节点分别入队列

6.中序和先序遍历的非递归的算法

使用一个栈,中序的话就是第二次经过这个节点的时候我们访问,先序就是第一次经过这个节点的时候去访问这个节点 因为一般来说我们知道他会进过两次,但是什么时候第三次经过我们并不知道。我们可以每个节点设置一个 mark 如果是第三次访问的时候我们就访问

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.二叉树的性质
    • 1.具有 n 个节点的二叉树第 n 层最多2的 n-1 次方个节点
      • 2.具有 n 个节点的二叉树最多有 2 的 n 次方减 1 个节点
        • 3.度为 0 的节点数等于度为 2 的节点数加 1
        • 2.两个小概念:
        • 3.线索化
          • 1.中序线索化
          • 4.树
          • 5.层序遍历
          • 6.中序和先序遍历的非递归的算法
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档