C/C++教程

C++二叉树的存储结构_1

本文主要是介绍C++二叉树的存储结构_1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

二叉树的顺序存储结构

顺序存储即为在计算机内存中开辟一段连续的内存空间用于存放二叉树的信息。对于一个二叉树,将二叉树按照满二叉树的标号方式,从上到下、从左到右、从0开始,依次给二叉树的结点进行标号。标号完成后,按照下标于数据,将其存入数组中。

当二叉树不是完全二叉树时,应该先将二叉树写成满二叉树的形式,空的位置不仅要保留空缺位置,还要依次编号。下图中,一共有7个数据,但是应当将上一层的结点和左子树补全,再编号,再存储。否则,无法区分满二叉树与非满二叉树,会混淆。

二叉树类的定义 

//定义二叉树类
class SqBiTree {
public:
	int SqBiTree[MAXSIZE];
};

类名称为SQBiTree,内有一个整形数组,名称为SqBiTree,长度为100

例题

因此,当按照满二叉树的标号存储二叉树时,会非常容易回复成员时的样子。

顺序存储的显著缺点:

当大多数结点位于右子树时,会造成空间浪费。并且树无法扩大。树的顺序存储密度往往小于1.当树的深度为k时,一定要开辟2^k-1个空间。所以,对于满二叉树,用顺序存储更方便。

 

 

这篇关于C++二叉树的存储结构_1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!