并不正经的前言

以前我这个小白看OI的书,老觉得有些东西很高端(看不懂的自然就很高端【滑稽】):什么啊,位运算啊,二叉树啊。有些东西我学了之后也很迷糊(真的不是因为傻?),做题的时候总是可以把自己搞懵,更甚有题解也看不懂……为了让众多和我一样的小白了解高端的东西,于是就有了c++:论如何成功把自己搞懵这个系列。

bb了这么多废话 开始吧


什么是二叉树

  什么是树

    是一种非线性的数据结构,能很好地描述有分支和层次特性的数据集合。

    about 树

      

      如上图,我们把红色的点称作结点(node),把最上方的结点叫做根结点,根结点下方的两个结构,我们称之为左子树右子树(也可称为左孩子右孩子)。我们把一个结点拥有的子树个数成为,度为0的结点我们称为叶结点。我们把一棵树中所有结点层次的最大值叫做深度。如图的二叉树深度为4

    什么是二叉树

    二叉树是一种特殊的树——即度为二的树

二叉树的结点计算公式

  在一个二叉树的第i层上,最多有2^(i-1)个结点。

  深度为k的二叉树至多有(2^k)+1个结点。

二叉树的遍历

  现在,请想象您正身处某二叉树的某一结点。想要知道这个二叉树的全貌,您必须遍历这个二叉树:一个个走遍这个二叉树的每一个结点,我们称之为遍历。有三种遍历方式:先序遍历,中序遍历,后序遍历。下面一图可以为您展示:

二叉树的前序遍历


代码实现二叉树

c++:论如何成功把自己搞懵【二叉树特辑①】(不定期更新)的更多相关文章

  1. 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来

    都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有 ...

  2. python一招完美搞定Chromedriver的自动更新

    日常的web自动化过程中,我们常常用python selenium库来操纵Chrome浏览器实现网页的自动化.这其中有个比较头疼的问题:Chrome的更新频率非常频繁,与之对应的Chromedrive ...

  3. 【java 数据结构】还不会二叉树?一篇搞定二叉树

    二叉树是我们常见的数据结构之一,在学习二叉树之前我们需要知道什么是树,什么是二叉树,本篇主要讲述了二叉树,以及二叉树的遍历. 你能get到的知识点? 1.树的介绍 2.二叉树的介绍 3.二叉树遍历的四 ...

  4. gcc8.2安装__(沒有成功)

    重要:https://gcc.gnu.org/install/prerequisites.html   官方安装所需要的工具文档 还有就是这篇文章 http://blog.51cto.com/2716 ...

  5. 教你在windows10环境下如何安装minepy并成功运行!

    在学习使用sklearn做单机特征工程这篇文章时,发现在计算互信息时from minepy import MINE代码运行出错ModuleNotFoundError: No module named ...

  6. 搞Jedis案例出现问题,有大佬帮我看看怎么解决吗?先感谢大佬点进来看了---Day31

    今天学了Jedis的相关内容,然后做了一个案例,但是出现了错误,然后我百度了一晚上没有解决,想到看看发个博客能不能有大佬帮我看一下问题出现在哪里,百度了一晚上有点懵逼.求大佬帮我解决,在这小弟我先万分 ...

  7. 被面试官问懵:TCP 四次挥手收到乱序的 FIN 包会如何处理?

    摘要:收到个读者的问题,他在面试的时候,被搞懵了,因为面试官问了他这么一个网络问题. 本文分享自华为云社区<TCP 四次挥手收到乱序的 FIN 包会如何处理?>,作者:小林coding . ...

  8. 2016 windows安装phing:安装成功

    21:39 2016/7/212016 windows安装phing:安装成功注意:出现错误时就去更新pear:参见:http://www.cnblogs.com/pinnasky/archive/2 ...

  9. thinkphp判断更新是否成功

    如何判断一个更新操作是否成功 $Model = D('Blog'); $data['id'] = 10; $data['name'] = 'update name'; $result = $Model ...

随机推荐

  1. mysql 进程

    --------------------查看mysql所有进程-----------show full processlist -------------------查看mysql 账号权限----- ...

  2. Til the Cows Come Home ( POJ 2387) (简单最短路 Dijkstra)

    problem Bessie is out in the field and wants to get back to the barn to get as much sleep as possibl ...

  3. linux下设置git代理访问.

    有时候克隆仓库巨慢无比,需要设置代理. 一般情况下 proxychains 可以搞定的. 但是某些情况,如go 安装模块的时候是调用git的.这个时候proxchains就不行了. go 也可以通过设 ...

  4. 大整数乘法(c++)【转载】

    摘自<c++数据结构原理与经典问题求解> #include #include #include using namespace std; //返回位数为size1+size2 int* m ...

  5. Flask-login 例子

    ################################################################################ from flask.ext.logi ...

  6. java并发编程--第一章并发编程的挑战

    一.java并发编程的挑战 并发编程需要注意的问题: 并发编程的目的是让程序运行的更快,然而并不是启动更多的线程就能让程序最大限度的并发执行.若希望通过多线程并发让程序执行的更快,会受到如下问题的挑战 ...

  7. 如何构建自己的docker镜像

    需求情况:springboot项目想要部署到docker里面,如何部署? 步骤如下: 1.将jar包上传linux服务器 /usr/local/dockerapp 目录,在jar包所在目录创建名为 D ...

  8. jQuery 的on()方法

    jQuery 的on()方法 一.总结 一句话总结: 1.普通添加事件:$("a").on("click", function () {执行的代码}) 2.未创 ...

  9. recyclerView 嵌套 recyclerView 点击被拦截

    上层recyclerView.setLayoutFrozen(true);下层可以接收到点击事件.

  10. centos 开启关闭网卡

    ifdown ifcfg-enp7s0 关闭网卡 ifup ifcfg-enp7s0 开启网卡