漠水 发表于 2014-11-18 14:28:24

二叉树的结构 视频42集中函数定义中没有数组,为什么可以定义函数+数组的形式

本帖最后由 漠水 于 2014-11-18 16:45 编辑

在小甲鱼老师视频42集树的存储结构2处出现的数据类型有点不懂
其中CTBox nodes函数中CTBox本身就是一个函数,但是它没有包含数组,为什么可以定义函数+数组的形式表示?
#define MAX_TREE_SIZE 100

typedef char ElemType;

// 孩子结点
typedef struct CTNode
{
int child; // 孩子结点的下标
struct CTNode *next; // 指向下一个孩子结点的指针
} *ChildPtr;

// 表头结构
typedef struct
{
ElemType data; // 存放在树中的结点的数据
int parent; // 存放双亲的下标
ChildPtr firstchild; // 指向第一个孩子的指针
} CTBox;

// 树结构
typedef struct
{
CTBox nodes; // 结点数组
int r, n;
}


大黑鱼 发表于 2014-11-18 14:28:25

首先,CTBox是一个结构体,
typedef struct
{
ElemType data; // 存放在树中的结点的数据
int parent; // 存放双亲的下标
ChildPtr firstchild; // 指向第一个孩子的指针
}CTBox;
他就像一种自定义的数据类型。只不过这个数据类型包含
ElemType data; // 存放在树中的结点的数据
int parent; // 存放双亲的下标
ChildPtr firstchild; // 指向第一个孩子的指针
这三个“元素”。
所以
CTBox nodes; 这样定义是说nodes是这个类型的数组。
个人见解。

漠水 发表于 2014-11-19 10:19:38

我还真不知道可以这样,谢谢了

lyjztz 发表于 2014-11-21 22:53:31

鱼币好少,东东好贵,怎么办?
页: [1]
查看完整版本: 二叉树的结构 视频42集中函数定义中没有数组,为什么可以定义函数+数组的形式