美文网首页
优雅的二叉树

优雅的二叉树

作者: DJ_f3ee | 来源:发表于2019-03-03 16:06 被阅读0次

二叉树(Tree)

(⊙﹏⊙)

这是一个满二叉树,瞧瞧它,枝繁叶茂,长得可带劲啦,hah。

深度是指所有结点中最深的结点所在的层数。

完全二叉树

从上往下看,就是深度(deepth)4嘛,emmm,高度(height)那肯定得仰视的角度嘛。自上而下的树,是由来已久的习惯,当初计算科学家高纳德曾经试图改变这个习惯,结果发现没几个月,就徒劳无功了,最后不了了之。

常用的二叉树存储,一般是数组或者链表。它是一种非线性表的数据结构,所以当你学完“图”后,会发现,咦长得可真像啊。

二叉树的遍历

先序遍历

中序遍历

后序遍历

层序遍历

emmm 实际上的存储

现以中序遍历来看看它究竟是怎么实现的,这里涉及到程序中的单线程,说白了,就是一件事非要做完,再做另一件。

当node不是空节点时,则会从23-->16-->3,这是只会执行inOrder(node.left),然后下一步,node.show()-->3;再inOrder(node.right),直接返回,到上一级node节点(16)的那个,这个过程类似栈的后入先出(LIFO,last-in-first-out)过程

而(不)完全二叉树,则会依据数组的存储是否满了,来判断是否是个好“树”,这个下次再聊聊。

二叉树的优缺点

二叉树中的数据是有序的,在O(n)的时间复杂度中,可以输出其性能更为稳定,平衡二叉树作为二叉树的升级版可以弥补其平衡性。

而哈希表(散列表),由于其中的数据是无须的,每次增查删改时,可能出现元素之间的冲突(虽然概率很小,2^65),但是所费的时间,所考虑的范围往往比二叉树多。

开发中,充分结合需求,扬长避短即可。

二叉树实现及可视化:https://www.bilibili.com/video/av9343349?from=search&seid=15629247604702884278

wiki:二叉树

部分图片来源:百度 谷歌

js部分源代码实现:https://github.com/Jiangjao/python_learn_demo/tree/master

相关文章

  • 优雅的二叉树

    二叉树(Tree) 这是一个满二叉树,瞧瞧它,枝繁叶茂,长得可带劲啦,hah。 深度是指所有结点中最深的结点所在的...

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

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

  • 切片指针类型的应用——golang

    今天在力扣上做二叉树前序遍历的题目时,遇到一个困惑的问题,先来看看我用递归实现的代码: 看着这么简洁优雅的代码,自...

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 树与二叉树

    **树 ** 二叉树 满二叉树 完全二叉树 三种遍历方法 树与二叉树的区别 二叉查找树 平衡二叉树 红黑二叉树

  • 二叉树

    二叉树 高度 深度真二叉树 满二叉树 完全二叉树 二叉树遍历前序 中序 后序层序遍历 翻转二叉树 递归法...

  • 12.树Tree(2)

    目录:1.二叉树的基本概念2.二叉树的性质3.二叉树的创建4.二叉树的遍历 1.二叉树的基本概念 2.二叉树的性质...

  • 二叉树理论介绍

    二叉树的种类 满二叉树 完全二叉树 满二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的...

  • 二叉树的宽度优先搜索(层次遍历,BFS)

    二叉树结构: 二叉树宽度优先搜索: 按照二叉树的层数依次从左到右访问二叉树的节点;例如:给定一个二叉树: 按照宽度...

  • 二叉树的镜像-java

    二叉树的镜像 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树8/ 6...

网友评论

      本文标题:优雅的二叉树

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