美文网首页
2011.二叉树

2011.二叉树

作者: lsh的学习笔记 | 来源:发表于2020-04-30 09:31 被阅读0次

二叉树(Binary Tree)

特征

  1. 每个节点最多有两个“叉”,即两个子节点,分别是左子节点右子节点。但是,并不要求每个节点都有两个子节点,有的节点只有左子节点,有的节点只有右子节点。
1

分类

1. 满二叉树

编号 2

  1. 叶子节点全都在最底层
  2. 除了叶子节点之外,每个节点都有左右两个子节点。

2. 完全二叉树

编号 3

  1. 除了最后一层,其他层的节点个数都要达到最大
  2. 最后一层的叶子节点都靠左排列
2

完全二叉树的优点

可以使用顺序存储法,消耗的空间少。

如果节点 X 存储在数组中下标为 i 的位置,
左子节点:存储下标位置为 2 * i
右子节点:存储下标位置为 2 * i + 1

通过这种方式,我们只要知道根节点存储的位置(一般情况下,为了方便计算子节点,根节点会存储在下标为 1 的位置),这样就可以通过下标计算,把整棵树都串起来。仅仅“浪费”了一个下标为 0 的存储位置。

3

如果某棵二叉树是一棵完全二叉树,那用数组存储无疑是最节省内存的一种方式。因为数组的存储方式并不需要像链式存储法那样,要存储额外的左右子节点的指针。

遍历

  • 先根遍历
  • 中根遍历
  • 后根遍历
// 逻辑,不同的遍历把1、2、3顺序调换一下即可
遍历函数(Node node){
  1. 打印当前节点的值;
  2. 遍历node的左子树;
  3. 遍历node的右子树;
}
// 伪代码
void preOrder(Node node){
  if (node == null) return;
  print (node.value);
  preOrder(node.left);
  preOrder(node.right);
}

相关文章

  • 2011.二叉树

    二叉树(Binary Tree) 特征 每个节点最多有两个“叉”,即两个子节点,分别是左子节点和右子节点。但是,并...

  • 2011.中秋

    内无光 外微亮 月上房上 当把酒 洗茶香 杯烫汤烫 早放下 恰归去 南方北方 独倚窗 翘首望 风刮月 月忽藏 化清...

  • Ten-year iGEM:2011

    Interviewees: Li Li: iGEM 2011. Graduated from King’sColl...

  • Swift In Depth

    I started as an iOS developer in 2011. I loved to make iP...

  • 《沉沦》 2011.冬

    文/野谷 世界充满阳光,你怎么过的如此昏暗? 醉生梦死、红灯酒绿、颓于网络,在他的青春里立下了一座座墓碑,刻录的是...

  • 19/2019 触不可及

    法国 2011. (以下梗概来自豆瓣) 因为一次跳伞事故,白人富翁菲利普Philippe(弗朗索瓦·克鲁塞 Fra...

  • 毕业论文JAVAEE最新参考文献【2011年以上】

    毕业论文最新参考文献 [1] 李运莉. web数据库应用系统性能优化[M].北京:人民邮电出版社,2011. [2...

  • 孔明灯

    (文/2011.正月十五) 『希望茹茹的病,能够好转』 男孩在心中默默念叨,然后放飞手中的孔明灯。 他的妻子因为重...

  • 《计算机操作系统》课程复习

    坐标:CUMT教材:林果园等.计算机操作系统[M],北京:清华大学出版社,2011. 注:根据陆亚萍老师的复习疏理...

  • 数据结构与算法-二叉树02

    二叉树的定义 二叉树的特点 二叉树的五中基本形态 其他二叉树 斜二叉树 满二叉树 完全二叉树图片.png满二叉树一...

网友评论

      本文标题:2011.二叉树

      本文链接:https://www.haomeiwen.com/subject/ajwawhtx.html