数据结构MOOC|二叉树的表示

本文介绍了二叉树的三种表示方法:链表表示法、数组表示法及结构数组表示法。链表表示法使用指针连接节点,数组表示法则适用于完全二叉树,并可通过下标快速定位父子节点。结构数组表示法类似于静态链表,便于存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.链表表示法


struct TreeNode {
     int val;
     TreeNode *left;
     TreeNode *right;
     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 };

2.数组表示法:将二叉树看作完全二叉树


缺点,如果树很稀疏的话,空间浪费比较大。

优点,父子结点、兄弟结点之间通过下标计算可以很方便的找到。

3.结构数组(相当于静态链表)表示法

//结构数组表示二叉树
#define ElementType char
#define Tree int
#define Null -1
struct TreeNode
{
    ElementType Element;
    Tree Left;
    Tree Right;
};


上面两图为同一树的结构数组的不同表示方法。

可以看出,其表示方法不唯一,且树根不一定在下标0号位置。

故涉及到找树根的问题:在Left和Right域中没有出现过的下标位置就是树根。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值