===================我是分割线======================

1. 定义:

  一些结点的集合,集合可以为空。定义树的自然方式是递归的方法。

2. 相关概念

  根(root)、边(edge)、儿子(child)、父亲(parent)

  叶结点(leaf):没有子结点

  兄弟结点(sibling):有共同的父结点

  路径(path)、路径长(length)、深度(depth):root的深度为0

  祖先(ancestor)、真祖先(proper ancestor)

3. 结点结构:

  

 struct TreeNode {
object element;
TreeNode* leftChild;
TreeNode* rightChild;
};

4. 遍历

  ①先序遍历(先访问root,然后访问左子树,最后访问右子树)

  ②中序遍历(先访问左子树,然后访问root,最后访问右子树)

  ③后序遍历(先访问左子树,然后访问右子树,最后访问root)

  ④广度优先遍历

  ⑤深度优先遍历

5.应用

  ①文件结构的底层实现

  ②STL 中的set、map底层实现

【C++】朝花夕拾——树(开篇)的更多相关文章

  1. 【C#表达式树 开篇】 Expression Tree - 动态语言

    .NET 3.5中新增的表达式树(Expression Tree)特性,第一次在.NET平台中引入了"逻辑即数据"的概念.也就是说,我们可以在代码里使用高级语言的形式编写一段逻辑, ...

  2. 【朝花夕拾】朝花夕拾-Robot Framework实战演练之开篇

    (原创文章,转载请注明出处.) 开博了,简单感慨两句. 前些年一直在做质量体系建设及团队管理的事,忽略了对测试技术热度的保持,这两年有幸重回开发测试第一线,颇感欣喜. 近期随着公司新业务的开展,需要快 ...

  3. python之路十六

    一.什么是DOM?    什么叫DOM,DOM是文档对象模型(Document Object Model,是基于浏览器编程(在本教程中,可以说就是DHTML编程)的一套API接口,W3C出台的推荐标准 ...

  4. 【C++】朝花夕拾——表达式树

    表达式树: 叶子是操作数,其余结点为操作符,是二叉树的其中一种应用 ====================我是分割线====================== 一棵表达式树如下图: 若是对它做中序 ...

  5. [.net 面向对象程序设计进阶] (1) 开篇

    [.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...

  6. 【转】Entity Framework技术导游系列开篇与热身

    转自:http://blog.csdn.net/bitfan/article/details/12779517 Entity Framework走马观花 之 把握全局 ================ ...

  7. CoreAnimation 开篇

    CoreAnimation 开篇 CoreAnimation系列博客是我对学习CoreAnimation的知识整理,博客排列顺序以及知识讲解存在欠缺望见谅. 博客的编写是在工作之余,尽量保证CoreA ...

  8. ShoneSharp语言(S#)的设计和使用介绍系列(1)— 开篇

    ShoneSharp语言(S#)的设计和使用介绍 系列(1)- 开篇 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. 一 ...

  9. SQL反模式学习笔记1 开篇

    什么是“反模式” 反模式是一种试图解决问题的方法,但通常会同时引发别的问题. 反模式分类 (1)逻辑数据库设计反模式 在开始编码之前,需要决定数据库中存储什么信息以及最佳的数据组织方式和内在关联方式. ...

随机推荐

  1. pojWindow Pains(拓扑排序)

    题目链接: 啊哈哈,点我点我 题意: 一快屏幕分非常多区域,区域之间能够相互覆盖,要覆盖就把属于自己的地方所有覆盖. 给出这块屏幕终于的位置.看这块屏幕是对的还是错的.. 思路: 拓扑排序,这个简化点 ...

  2. tomcat用80port能够启动,可是浏览器不显示tomcat首页

    一.打开执行(ctrl+r)->输入cmd->确定->输入netstat -ano 结果检測到 :80port被system 占用,如图所看到的 打开进程发现确实被 PID为 4 的 ...

  3. Android怎样监听蓝牙耳机的按键事件

    Android怎样监听蓝牙耳机的按键事件 写在前面: 直接想要代码非常easy,你直接把滚动栏拉到最底端就能够看到.假设想要十分地了解为什么,那就依照我规划的一步一步来理解.下面測试环境以手头上有的「 ...

  4. VC++6.0不能显示MSDN解决的方法

    1.搜索看系统是否有Vshelp.dll文件.没有则去站点下载一个 位操作系统直接将下载的文件放在C:\Windows\System32 位操作系统则放在C:\Windows\SysWOW64 3.点 ...

  5. tt1

    DIm #include iostream.h#include iostream.h# #include iostream.h http://www.cnblogs.com/cmt/archive/2 ...

  6. Error:(2, 0) No service of type Factory<LoggingManagerInternal> available in ProjectScopeServices. <

    compile报下面的错误Error:(2, 0) No service of type Factory available in ProjectScopeServices. 点击open file ...

  7. Linux Centos 下安装软件 三种方式

    1)一种是软件的源代码,您需要自己动手编译它.这种软件安装包通常是用gzip压缩过的tar包(后缀为.tar.gz). 2)另一种是软件的可执行程序,你只要安装它就可以了.这种软件安装包通常被是一个R ...

  8. 怎么样关掉红米note开发者选项

    进 系统设置\应用 ,找到“设置”点进去,清一下数据,再打开“设置”查看,就没有“开发者选项”了

  9. 使用Google Closure Compiler全力压缩代码(转)

    JavaScript压缩代码的重要性不言而喻,如今的压缩工具也有不少,例如YUI Compressor,Google Closure Compiler,以及现在比较红火的UglifyJS.Uglify ...

  10. ubuntu/linuxmint更换163源及常用软件PPA源记录

    一.163源使用说明 (具体见:http://mirrors.163.com/,不推荐linuxmint更换源!!!) 以Wily(15.10)为例, 编辑/etc/apt/sources.list文 ...