数据结构—非二叉树存储结构(C语言实现)

以下所有内容都来自网易云课堂——数据结构(小甲鱼版)

树作为一种一对多的关系,在存储数据时与链表不同,采用数据与关系分离的方式

也就是说数据结构由两部分组成,一部分存储数据,一部分存储关系,二者采用不同的数据结构

数据采用数组,关系采用链表

如下:

数据——

typedef struct tree
{
    sonPtr sons;
    int parent;
    char content;
}tree;

上面每一个元素都由三部分组成,数据(content),儿子们(sons),爸爸(parent)

parent指明父节点的索引

关系——

typedef struct son
{
    int treeID;
    struct son *next;
}*sonPtr,son;

关系也就是儿子们,是一个链表,把该节点的儿子串起来

最后整个树合起来就是

typedef struct wood
{
    tree trees[MAX_TREE_SIZE];
    int count;
    int root;
}wood;

这里wood其实就指一棵树,下面的tree数组存放树节点的相关信息,count是节点数,root指明根节点的索引


所有知识看图就明白,先放一张萌萌的树


该结构存储如下:




休息了~






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值