数据结构 --树的存储方式

树的存储方式中最简单的一种是 一维数组链表结构(自己理解的)

(图片来源:B站小甲鱼)

 

最左边一列代表的是数组的序号(下标) 中间A|B|C..代表内容 右一列代表父母节点 因为A无父母节点 所以A为-1

最右侧(貌似凌乱散布的)代表的是孩子节点的下标序号 

 

代码实现:

define MAX_size 100//定义数组最大容量

typedef  char Elemtype;

//先定义孩子结构体

typedef struct code{

         int  child;//孩子节点下标

         struct code *next;//孩子节点下一个指向

} *Childp;//定义孩子指针

//定义父母结构体

typedef struct {

     Elemtype data;//存储a,b,c,d,等节点内容

     int num;//储存双亲的下标;

     Childp firstchild;//指向第一个孩子(直系)的指针

}  Parent;

//建立数组

typedef struct {

      Parent node[MAX_SIZE];

      int r;//当前根节点的位置

      int n;//节点个数

} Zong;

 /***********************************

代码理解:先建立孩子结构体 让后建立的父母结构体指针域有所指向

再建立父母结构体 (可以看成左侧三列中的某一行的建立)

最后建立数组结构存储内容(左侧三列全部内容放入)

 

********************************************/

posted on 2021-11-22 18:46  肆莫耀  阅读(353)  评论(0)    收藏  举报