(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树

摘要:
关于二叉树有一点需要注意:二叉树并不是树的一种特殊形式。二叉树又有几种特殊的形式:二叉排序树、最优二叉树、二叉堆等。完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;满二叉树——除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树,。

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第1张

关于二叉树有一点需要注意:二叉树并不是树的一种特殊形式。

二叉树又有几种特殊的形式:二叉排序树(二叉查找树)、最优二叉树(哈弗曼树)、二叉堆(大顶堆,小顶堆)等。斜线是数据结构

二叉排序树(二叉查找树)(BST)它或者是一棵空树;或者是具有下列性质的二叉树:(常用二分查找
1,若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
2,若右子树不空,则右子树上所有结点的值均大于它的根结点的值;
3,左、右子树也分别为二叉排序树;

特有的性质:对于每个结点,左孩子均小于它,右孩子均大于它

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第2张

AVL平衡二叉树

特有性质:第一:它是一颗二叉排序树,查找树,BST

第二:任何一个节点的左子树高度和右子树的高度差在-1,0,1三者之间

AVL树是一种自平衡二叉排序树,它的特点是任何一个节点的左子树高度和右子树的高度差在-1,0,1三者之间。AVL树的任何一个子树都是AVL树。

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第3张

哈弗曼树特有性质:1.是一颗最普通的二叉树 2.就是带权路径长度最小,因此还叫最优二叉树。

(1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;

(2)满二叉树——除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树,。

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第4张(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第5张

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第6张

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第7张

二叉堆小顶堆和大顶堆

性质:第一条,是一颗完全二叉树或者近似是一颗完全二叉树

第二条:任给一个结点总是>=其孩子的结点,部分左右(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第8张

Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2]

即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。

堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第9张

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第10张

完全二叉树是效率很高的数据结构,是一种完全二叉树或者近似完全二叉树,所以效率极高,像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化,几乎每次都要考到的二叉排序树的效率也要借助平衡性来提高,而平衡性基于完全二叉树。

堆排序:

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第11张自底向上,自左向右进行调整为堆

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第12张

一个完全二叉树到大顶堆

例子:调堆的过程应该从最后一个非叶子节点开始

分别与左孩子和右孩子比较大小,如果A[3]最大,则不用调整,否则和孩子中的值最大的一个交换位置,

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第13张

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第14张(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第15张

首先:最顶上那个元素和最末的那个元素交换

其次:调整为堆即每次调整都是从父节点、左孩子节点、右孩子节点三者中选择最大者跟父节点进行交换(交换之后可能造成被交换的孩子节点不满足堆的性质,因此每次交换之后要重新对被交换的孩子节点进行调整)

最开始的这个堆,然后对这个堆进行排序

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第16张

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第17张

(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树第18张

免责声明:文章转载自《(考研)(精华)二叉树的知识结构图以及各种特殊的二叉树》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux 打开端口方法(防火墙操作)操作iframe 的方法与兼容性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

B树和B+树

1.磁盘原理   当磁盘需要读取某个地址数据的时候,首先会判断数据在哪个盘片上,确定好盘片之后呢,就开始选道,选道的过程就是通过伸展机械臂到数据对应的磁道(也就是圆环),再通过磁盘的旋转,找到对应的扇区,最后用磁头读取这几个扇区的数据到内存中去,因此可以看到读取磁盘数据是非常的耗时耗力的,尤其这里是机械操作。 因此如果用BST的方式在磁盘上存取数据,就会存...

gzip压缩算法

gzip,zlib,以及图形格式png,使用的是同一个压缩算法deflate。我们通过对gzip源码的分析来对deflate压缩算法做一个详细的说明: 第一,gzip压缩算法基本原理的说明。 第二,gzip压缩算法实现方法的说明。 第三,gzip实现源码级的说明。 1. Gzip压缩算法的原理          gzip 对于要压缩的文件,首先使用LZ7...

算法导论:Trie字典树

1、 概述  Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。  Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。  Trie树可以利用字符串的公共前缀来节约存储空间。如下图所示,该trie树用10个节点保存了...

python 堆排序

# 二叉树的遍历# 对二叉树中的所有元素不重复的访问一遍# 广度优先遍历# 层序遍历# 从第一层开始,没一层从左至右遍历元素# 深度优先遍历# 假设树的根节点为D,左子树为L,右子树为R,且要求L一定在R之前,则有以下遍历方式:# 前序遍历:也叫先序遍历,也叫先根遍历,DLR# 中序遍历:也叫中根遍历,LDR# 后序遍历:也叫后...

聪明的木匠 (哈夫曼树)

假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为[1]: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; (3)从森林中删除选取的两棵树,...

Aho

Aho - Corasick string matching algorithm 俗称:多模式匹配算法,它是对 Knuth - Morris - pratt algorithm (单模式匹配算法) 形成多模式匹配算法的一种改进,如果我们用单模式匹配算法实现多模式匹配算法,假如模式串有 M 个 , 则需要重复调用 M 次单模式匹配算法 ; 举个很简单的例子,...