二叉树的顺序结构

简介: 简单知识

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

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

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个结点的链域存放指针,指向非空子女结点。

相关文章
|
4月前
|
存储 算法 索引
二叉树的顺序结构(堆的实现)
二叉树的顺序结构(堆的实现)
35 1
|
9月前
搜索二叉树(二叉搜索树)的实现(递归与非递归)
搜索二叉树(二叉搜索树)的实现(递归与非递归)
|
9月前
|
算法
二叉树顺序结构&堆实现
二叉树顺序结构&堆实现
56 0
|
9月前
|
存储 算法
二叉树的顺序结构及实现
二叉树的顺序结构及实现
78 2
|
存储 C++
二叉搜索树详解以及C++实现二叉搜索树(递归和非递归)
二叉搜索树详解以及C++实现二叉搜索树(递归和非递归)
74 0
递归与非递归实现二叉树的前中后序遍历!!
递归与非递归实现二叉树的前中后序遍历!!
60 0
|
存储 算法
【数据结构与算法】二叉树的非递归前中后序遍历
【数据结构与算法】二叉树的非递归前中后序遍历
【数据结构与算法】二叉树的非递归前中后序遍历
|
数据采集 算法
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
层序遍历。听名字也知道是按层遍历。我们知道一个节点有左右节点。而每一层一层的遍历都和左右节点有着很大的关系。也就是我们选用的数据结构不能一股脑的往一个方向钻,而左右应该均衡考虑。这样我们就选用队列来实现。
223 0
数据结构与算法—二叉树的层序、前序中序后序(递归、非递归)遍历
|
算法 搜索推荐
从二叉树的前中后序遍历,我们来说递归和快速排序
从二叉树的前中后序遍历,我们来说递归和快速排序
从二叉树的前中后序遍历,我们来说递归和快速排序