二叉树的顺序结构

简介: 简单知识

🤦‍♂️二叉树的存储结构

🧟‍♀️二叉树的顺序结构
实现一般是按满(完全)二叉树的结点编号,依次存放二叉树中的数据元素。

image.png
image.png

如果不是完全二叉树呢?
先转化为完全二叉树。
image.png
image.png

缺点:浪费空间

二叉树的链式结构
image.png

image.png

二叉链表结点类定义:

class BiNode{
T data;
BiNode lchild,rchild; //左右孩子指针
public BiNode(T data,BiNode left,BiNode right){

this.data = data;     this.lchild = left;
this.rchild = right;  }

public BiNode(T data){ this(data ,null,null);}
public String toString(){return this.data.toString();}
public boolean isLeaf(){

return lchild==null && rchild==null; }

二叉树类定义:

public class BiTree{
BiNode root;
public BiTree(){

this.root = null; //初始化空二叉树    

}
public boolean isEmpty(){

return this.root==null;

}

…… //其他操作

}
在n个结点的二叉链表中,有 n+1 个空指针域。
分析:
n个结点必有2n个链域。
除根结点外,每个结点有且仅有一个双亲,所以只会有n-1个结点的链域存放指针,指向非空子女结点。

相关文章
二叉树的讲解
1.若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有2^(i-1) 个结点. 2. 若规定根节点的层数为1,则深度为h的二叉树的最大结点数是 2^h-1. 3. 对任何一棵二叉树, 如果度为0其叶结点个数为n0 , 度为2的分支结点个数为02 ,则有n0 =n2 +1 4. 若规定根节点的层数为1,具有n个结点的满二叉树的深度,h= . (ps: 是log以2为底,n+1为对数) 5. 对于具有n个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有节点从0开始编号,则对于序号为i的结点有:
二叉树的讲解
|
5月前
|
算法
二叉树顺序结构&堆实现
二叉树顺序结构&堆实现
44 0
|
5月前
【完全二叉树魔法:顺序结构实现堆的奇象】(下)
【完全二叉树魔法:顺序结构实现堆的奇象】
|
5月前
|
算法
【完全二叉树魔法:顺序结构实现堆的奇象】(中)
【完全二叉树魔法:顺序结构实现堆的奇象】
|
5月前
|
存储 算法
二叉树的顺序结构及实现
二叉树的顺序结构及实现
59 2
|
5月前
|
存储 算法 搜索推荐
【完全二叉树魔法:顺序结构实现堆的奇象】(上)
【完全二叉树魔法:顺序结构实现堆的奇象】
|
12月前
|
存储
二叉树的相关列题!!
二叉树的相关列题!!
72 0
二叉树——链式存储
✅<1>主页:我的代码爱吃辣 📃<2>知识讲解:数据结构——二叉树 🔥<3>创作者:我的代码爱吃辣 ☂️<4>开发环境:Visual Studio 2022 💬<5>前言:上期讲了二叉树的顺序存储,今天来讲一下二叉树的链式存储。
|
算法 关系型数据库 DataX
数据结构之二叉树的前中后序遍历以及层序遍历
数据结构之二叉树的前中后序遍历以及层序遍历
177 0
二叉树详解:带你掌握二叉树
二叉树详解:带你掌握二叉树
212 0