第08章 二叉树

二叉树

1.为什么要使用二叉树?

二叉树结合了有序数组快速查找和线性链表快速插入删除的优势。

树是一种既能像有序数组一样实现快速查询,又能像链表一样实现快速地插入和删除的数据结构.

2.有关树的几个术语

路径:从一个节点走到另一个节点,过程中数据的排列叫做路径.

:一个树只有一个根,只有子节点,没有父节点.

父节点:每个节点都向上连接的节点叫做父节点,根没有父节点,一个子节点只有一个父节点.

子节点:每个节点都向下连接的一个或者多个节点叫做子节点.

子树:每个节点都可以作为子树的根,子节点的节点都包含在子树中.

访问:当数据流向到某个节点时,就成为访问了该节点.

遍历:遵循某种特定的顺序来访问树所有节点的过程叫做遍历.

:节点层数是指从根开始到某个节点的代数,根为第0代.

关键字:对象的数据域中用来作为查询字段的叫做关键字.

二叉树:每个节点最多有2个子节点的树成为二叉树.

3.树的效率

树的时间复杂度为O(log N),更精确地说是O(log 2 N).(此处表示以2为底N的对数)

4.遍历树

三种遍历方式:

遍历树最简单的方法是递归。

前序遍历(preorder):

1.调用自身遍历节点的左子树

2.调用自身遍历节点的右子树

3.访问这个节点

中序遍历 (inorder) :

中序遍历会访问所有的节点按照关键字升序排列。

1.调用自身遍历节点的左子树

2.访问这个节点

3.调用自身遍历节点的右子树

后序遍历(postorder):

1.调用自身遍历节点的左子树

2.调用自身遍历节点的右子树

3.访问这个节点

5.删除树

1.无节点

2.一个节点

3.两个节点

第08章 二叉树

时间: 2024-10-08 10:24:06

第08章 二叉树的相关文章

JavaScript权威指南第08章 函数

函数 在javascript中,函数是对象,所以可以给函数设置属性,可以调用他们的方法. 8.1函数定义 function 函数名(参数列表){ 语句内容 } 函数命名规则 1.字母之间用下划线 like_this() 2.非首字母的单词首字母大写 likeThis() 嵌套函数 在函数里面定义函数 8.2函数调用 函数调用的4种方法 1.函数 2.方法 3.构造方法 4.apply call 简介调用 8.3函数的实参和形参 8.4作为值的函数 8.5作为命名空间的函数 8.6闭包 8.7函数

第08章 泛型

1 /***************** 2 ***第08章 泛型 3 *******知识点: 4 **************1.泛型定义 5 **************2.泛型使用 6 ******************2.1 普通泛型 7 ******************2.2 类型通配符 8 ******************2.3 受限泛型 9 ******************2.4 泛型接口.类.方法 10 ******************2.5 泛型数组 11 *

第08章 对象和包

本章重点:1.对象以及对象的成员2.访问控制符3.重载和包4.Java的注释 对象有3个主要特征:行为.状态.标识符. public class newClass{ void print(){ System.out.println("我是一名优秀的程序员"); } public static void main(String[] args){ newClass nc = new newClass(); nc.print(); }} 成员方法实际上就是函数,而函数拥有自己的特性,在定义方

<<Python基础教程>>学习笔记 | 第08章 | 异常

------ 什么是异常:Python用异常对象(exception object)来表示异常情况.如果异常信息未被处理或捕捉. 程序就会用回潄来终止执行 >>> 1/0 Traceback (most recent call last): #Traceback: 一种错误信息 File "<stdin>", line 1, in ? ZeroDivisionError: integer division or modulo by zero 每个异常都是一

第08章笔记

第8章 菜单的建立 主要内容 建立和使用菜单 菜单的种类: 1:下拉菜单: 2:快捷菜单,又称弹出菜单或右键菜单: 3:系统菜单,又称控制菜单. 菜单和菜单项 菜单和菜单项的关系类似于文件夹和文件.真正实现具体功能的是菜单项,如:"新建"."打开"."保存"等:而菜单的作用则是容纳一组相关的菜单项,如"文件"菜单,"编辑"菜单. 菜单资源的建立 1:创建"Resource Script"

(数据结构第六章)二叉树的顺序存储结构

二叉树的五条性质: 1.在二叉树的第i层上至多有2^(i-1)个节点(i>=1) 2.深度为k的二叉树至多有2^k-1个节点(k>=1) 3.对任何一个二叉树T,如果其终端节点数为n0,度为2的节点数为n2,则n0=n2+1. 证:总结点数n=n0+n1+n2 设分支总数B,n=B+1 B=n1+n2:两式加减即证出. 补充个定义:节点拥有的子树数称为节点的度. 树的度是树内各节点度的最大值. 4.具有n个节点的完全二叉树的深度为floor(log(2)n)+1 5.如果对一颗有n个节点的完全

公开课视频-《第08章 部署-Citrix-桌面虚拟化-XenDesktop 7.7》

****************** 公开课已讲课程:****************** 2016-06-22-第04章 部署-Microsoft-服务器虚拟化-Hyper-V 2012 R22016-06-29-第05章 部署-VMware-服务器虚拟化-esxi 6.0.0 U12016-07-06-第06章 部署-VMware-桌面虚拟化-Horizon View 6.2.12016-07-13-第07章 部署-VMware-应用程序虚拟化-ThinApp 5.1.1 2016-07-2

第08章:java常用类库

本章主要内容: 1. API概述 2.  常用类: Object类/Scanner类 String类/StringBuffer类/StringBuilder类 数组高级和Arrays类 基本类型包装类(Integer,Charater) 正则表达式(Pattern,Matcher) Math类/Random类/System类 BigInteger类/BigDecimal类 Date类/DateFormat类/Calendar类 2:API的概述(了解) (1)应用程序编程接口. (2)就是JDK

第08章 ElasticSearch Java API

本章内容 使用客户端对象(client object)连接到本地或远程ElasticSearch集群. 逐条或批量索引文档. 更新文档内容. 使用各种ElasticSearch支持的查询方式. 处理ElasticSearch返回的错误信息. 通过发送各种管理指令来收集集群状态信息或执行管理任务. 8.3 连接到集群 8.3.1 成为ElasticSearch节点 第一种连接到ElasticSearch节点的方式是把应用程序当成ElasticSearch集群中的一个节点. Node node=no