笔记:二叉树
创始人
2024-05-31 12:16:34
0

学习了二叉树,今天来整理一下笔记吧!

一:树的理解

树的度是不限制的,一个双亲结点可以有很多子节点,但是子节点是不能交叉的,也就是不能有环。

树的的最大层次叫做这棵树的深度或者高度;

树的代码表示:

用代码如何连接这些数据,让他和树有一样的访问顺序呢

可以用左孩子右兄弟的算法:

typedef int DataType;
struct Node{struct Node* child;struct Node* brother;DataType x;
};

每一个结点含有有两个指向:指向孩子和兄弟结点

windos的文件管理使用的结构就是树

二、二叉树的个人理解

二叉树也是树,是每一个结点的孩子数为一个,两个,没有孩子。

二叉树的左右孩子是有区分的,不能颠倒,有序树

满二叉树:

除了最后一层的结点,其他每一层的结点都是有两个孩子,它的结点总数是2^k-1;

完全二叉树:

倒数第二层的结点,存在有的结点不是有两个孩子。最后一层的结点数从左到右必须连续;

二叉树的一些性质:

根节点为1:第i层的节点数最大为2^(i-1)

深度为k的二叉树的总结点数为:2^k-1;

度为0的结点数比度为2的节点数多一个:n0 = n2+1;

具有n各节点的二叉树,它的深度为:k = log2(n+1)

若二叉树上下,左右的顺序标号,则序号为i的结点,它的双亲是(i-1)/2

它的左孩子为2*i+1,右孩子为2*i+2,但是总数不能超过总结点数n;

三、二叉树的存储结构

逻辑结构方便我们记忆的就是为树的样子;

顺序存储:

二、链式存储:

每一个结点包含左孩子和右孩子和存储的数据x:

typedef int TypeData;
struct BinaryTreeNode{struct TreeNode* left;struct TreeNode* right;TypeData x;
}; 

完全二叉树的顺序结构的实现:

完全二叉树适合用顺序存储来实现;

将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。上图就是大堆; 堆的性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...