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

(图片来源: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;
/***********************************
代码理解:先建立孩子结构体 让后建立的父母结构体指针域有所指向
再建立父母结构体 (可以看成左侧三列中的某一行的建立)
最后建立数组结构存储内容(左侧三列全部内容放入)
********************************************/
浙公网安备 33010602011771号