二叉树的存储

顺序存储

使用数组进行存储
比较适合完全二叉树使用
在这里插入图片描述
结点i的父结点的序号是i/2 i非根结点
结点i的左子结点的序号是2i (2i<=n,否则无左子结点)
结点i的右子结点的序号是2i+1 (2i+1<=n,否则无右子结点)

对于非完全二叉树,可将无结点的位置记为空

链表存储

对于一般二叉树,使用顺序存储会造成空间的浪费

链式存储是使用链表进行存储
在这里插入图片描述

typedef struct TreeNode *BinTree;
typedef BinTree Position;
struct TreeNode
{
    
    
	int data;
	BinTree left;
	BinTree right;
};

猜你喜欢

转载自blog.csdn.net/m0_54621932/article/details/114104255