二叉树的基本理论知识
树的特征
树是一种数据结构,它是n(n>=0)个节点的有限集。n=0时称为空树。n>0时,有限集的元素构成一个具有层次感的数据结构。
区别于线性表一对一的元素关系,树中的节点是一对多的关系。树具有以下特点:
- n>0时,根节点是唯一的,不可能存在多个根节点。
- 每个节点有零个至多个子节点;除了根节点外,每个节点有且仅有一个父节点。根节点没有父节点。
树的相关概念
树有许多相关的术语与概念,在学习树的结构之前,我们要熟悉这些概念:
• 子树:除了根节点外,每个子节点都可以分为多个不相交的子树。(图二)
• 孩子与双亲:若一个结点有子树,那么该结点称为子树根的"双亲",子树的根是该结点的"孩子"。在图一中,B、H是A的孩子,A是B、H的双亲。
• 兄弟:具有相同双亲的节点互为兄弟,例如B与H互为兄弟。
• 节点的度:一个节点拥有子树的数目。例如A的度为2,B的度为1,C的度为3.
• 分支节点:除了叶子节点之外的节点,也即是度不为0的节点。
两种特殊的二叉树
斜树
所有节点都只有左子树的二叉树叫做左斜树,所有节点都只有右子树的二叉树叫做右斜树。左斜树和右子树统称为斜树。
斜树已经退化成线性结构,二叉树在查找上表现出来优异性能在斜树得不到体现。
满二叉树
满二叉树要满足两个条件:
- 所有的节点都同时具有左子树和右子树。
- 所有的叶子节点都在同一层上。
在同样深度的二叉树中,满二叉树的节点数目是最多的,叶子数也是最多的。
完全二叉树
完全二叉树(Complete Binary Tree) :若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
二叉树的存储结构
1. 二叉树的顺序存储
^代表不存在的结点。
对于右斜树,顺序存储结构浪费存储空间
2. 二叉链表
链表每个结点包含一个数据域和两个指针域:
其中data是数据域,lchild和rchild都是指针域,分别指向左孩子和右孩子。
转载于:https://www.cnblogs.com/sunbines/p/9074415.html
二叉树的基本理论知识相关推荐
- 用VC进行COM编程所必须掌握的理论知识
用VC进行COM编程所必须掌握的理论知识 这篇文章是给初学者看的,尽量写得比较通俗易懂,并且尽量避免编程细节.完全是根据我自己的学习体会写的,其中若有技术上的错误之处,请大家多多指正. 一.为什么要用 ...
- 关于mpi的理论知识以及编写程序来实现数据积分中的梯形积分法。
几乎所有人的第一个程序是从"hello,world"程序开始学习的 #include "mpi.h" #include <stdio.h> int ...
- oracle rac理论知识
oracle数据库高可靠性高性能的特性是很多企业需要的,这些年一直给各大政府企业做oracle咨询与规划,实施安装以及维护,回头看看,自己已经忘记大部分oracle rac的整体具体架构理论知识,现在 ...
- INLINE HOOK过驱动保护的理论知识和大概思路
INLINE HOOK过驱动保护的理论知识和大概思路,简单驱动保护就是简单的HOOK掉内核API的现象 找到被HOOK的函数的当前地址在此地址处先修改页面保护属性然后写入5个字节.5个字节就是一个简单 ...
- Web自动化测试理论知识
Web 自动化理论知识 1.自动化测试概述 概念:用工具代替/辅助人工完成完成软件测试活动的过程 特点: 可以对程序的新版本自动执行回归测试 可以执行一些手工测试困难或不可能进行的测试 ...
- 如何将计算机专业知识和水文结合,2016水文勘测理论知识及参考答案 B卷
理论知识及参考答案 Ⅰ.必答题(75分) 一.单选题(15分) (在每小题的空档中填入所选内容的序号,每题1分) 1.悬移质含沙量的大小对流速脉动有一定,含沙量增大,流速脉动将( A ),特别是高含沙 ...
- 计算机组装维修中级试题,计算机维修工中级理论知识试卷.doc
计算机维修工中级理论知识试卷.doc 职业技能鉴定国家题库 计算机维修工中级理论知识试卷 注 意 事 项 本试卷依据2007年颁布的<计算机(微机)维修工>国家职业标准命制, 考试时间:9 ...
- 从理论知识到落地能力,你欠缺了什么?
转载自 从理论知识到落地能力,你欠缺了什么? 本文是一个理论过度到实践的典型案例,借助程序员经常遇到的一个问题--网络为什么不通,来具体说明怎么将书本上的死知识真正变成我们解决问题的能力. 大学学 ...
- 实用的it知识学习_怎样能更快更好的学习好书法?分享一些比较实用的理论知识...
如何能更快更高效的学习书法?首先了解一些书法理论知识是很有必要的!它能让你在学习书法的过程中不至于迷茫 !能助你更快学好书法! 一.书论在实践中产生 我们大部分人都觉得学习书法可以没有理论,但不可无技 ...
最新文章
- 《javascript语言精粹》读书笔记(一)
- 前端遍历列表生成表格_源码剖析狗屁不通文章生成器
- Andriod Studio 解决问题 Failed to resolve: com.android.support:appcompat-v7:28.+
- Inserting/Removing shutters and filters
- 共享X轴,分成上下两图
- 前端学习(761):什么是对象为什么需要对象
- 网络爬虫--17.【BeautifuSoup4实战】爬取腾讯社招
- LeetCode 848. 字母移位(前缀和+取模)
- jquery.ajax之beforeSend方法使用介绍
- 冲动是魔鬼——4.25
- Pointer is missing a nullability type specifier (__nonnull or __nullable)
- 宏杉科技 难忘十年
- 数字电路基础知识——时序逻辑电路之时序逻辑分析方法
- 财务自由之路 读书笔记 第六章 债务
- SDK “iphoneos“ cannot be located
- vector的 resize()和reserve()的区别
- 线性回归的几种评价方法
- 各种排序算法的总结和比较
- dart 遍历数组_flutter开发,Dart中的那些骚气语法!
- 在Excel VBA中使用字典
热门文章
- Will it finally: 关于 try/catch 的一些细节
- 这是个将近3万人点赞,涉及9大模块,专为程序员准备的面试宝典
- 第 3 章 Systems architecture(系统架构)
- 学习笔记(番外篇)——python批量转换图片格式
- ActiveMQ消息传送机制以及ACK机制详解
- 安卓手机文件管理器简单横向评比 - imsoft.cnblogs
- There is no public key available for the following key IDs
- 【用户行为即时分析查询】 数据仓库实现 案例分享
- 注册中心—组件—Consul
- 注册中心—常见注册中心组件对比分析