用编程搞垮道盟 发表于 2018-10-31 11:12:03

关于struct

typedef struct BiTNode
{
        TElemType data;
        struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
第四排那个struct里面还有一个struct是什么意思啊??求救求救!!

风过无痕丶 发表于 2018-10-31 11:13:22

一个结构体里面内嵌了另外一个结构体

用编程搞垮道盟 发表于 2018-10-31 11:24:06

风过无痕丶 发表于 2018-10-31 11:13
一个结构体里面内嵌了另外一个结构体

具体什么用啊老哥???

remakejobs 发表于 2018-10-31 11:34:47

这个是为了实现双向链表,可以了解一下,单链表、双链表的知识(数据结构)

用编程搞垮道盟 发表于 2018-10-31 11:46:36

remakejobs 发表于 2018-10-31 11:34
这个是为了实现双向链表,可以了解一下,单链表、双链表的知识(数据结构)

不,这个代码是二叉树里的。。

claws0n 发表于 2018-10-31 11:55:23

int *p 是什么?指向【int】的指针
struct BiTNode *lchild 是什么?指向【struct BiTNode】的指针

               父节点 data0
左孩子                               右孩子
data1                                 data2
...   ...                               ...    ...                        

风扫地 发表于 2018-10-31 12:36:47

我是一个结构体,我有一个数据元素,还有一个指针元素。
万万没想到,我的那个指针元素要指向一个和我一样类型的结构体变量。

用编程搞垮道盟 发表于 2018-10-31 15:35:34

风扫地 发表于 2018-10-31 12:36
我是一个结构体,我有一个数据元素,还有一个指针元素。
万万没想到,我的那个指针元素要指向一个和我一样 ...

似乎有点明白,可是这个里面那个结构体没有定义呀??
而且可以和外面的那个结构体重名?

用编程搞垮道盟 发表于 2018-10-31 15:49:06

claws0n 发表于 2018-10-31 11:55
int *p 是什么?指向【int】的指针
struct BiTNode *lchild 是什么?指向【struct BiTNode】的指针



那跟第五排那个相当于别名一样的那两个有什么区别呀

claws0n 发表于 2018-10-31 16:16:05

用编程搞垮道盟 发表于 2018-10-31 15:49
那跟第五排那个相当于别名一样的那两个有什么区别呀

二叉树      4
         6            2
   7      5      3    1
8   

typedef 不建议写两个,需要指针的话,多加一个星号就好
BiTNode *root;
root = (BiTNode *)malloc(sizeof(BiTNode));
root->data = 4;
root->lchild = NULL;
root->rchild = NULL;

添加新元素 6
BiTNode *p, *r;
r = root;
p = (BiTNode *)malloc(sizeof(BiTNode));
p->data = 6;
p->lchild = NULL;
p->rchild = NULL;
.... 一些比较之后,新元素要放到根节点的左孩子
r->lchild = p;

这样的结构一直在重复,但最小单元就是【一个元素、两个指针】,所以被包装成结构体
页: [1]
查看完整版本: 关于struct