鱼C论坛

 找回密码
 立即注册
查看: 1113|回复: 9

[已解决]关于struct

[复制链接]
发表于 2018-10-31 11:12:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. typedef struct BiTNode
  2. {
  3.         TElemType data;
  4.         struct BiTNode *lchild,*rchild;
  5. }BiTNode,*BiTree;
复制代码

第四排那个struct里面还有一个struct是什么意思啊??求救求救!!
最佳答案
2018-10-31 12:36:47
我是一个结构体,我有一个数据元素,还有一个指针元素。
万万没想到,我的那个指针元素要指向一个和我一样类型的结构体变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-31 11:13:22 | 显示全部楼层
一个结构体里面内嵌了另外一个结构体
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-31 11:24:06 | 显示全部楼层
风过无痕丶 发表于 2018-10-31 11:13
一个结构体里面内嵌了另外一个结构体

具体什么用啊老哥???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-31 11:34:47 | 显示全部楼层
这个是为了实现双向链表,可以了解一下,单链表、双链表的知识(数据结构)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-31 11:46:36 | 显示全部楼层
remakejobs 发表于 2018-10-31 11:34
这个是为了实现双向链表,可以了解一下,单链表、双链表的知识(数据结构)

不,这个代码是二叉树里的。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-31 11:55:23 | 显示全部楼层
int *p 是什么?指向【int】的指针
struct BiTNode *lchild 是什么?指向【struct BiTNode】的指针

                 父节点 data0
左孩子                               右孩子
data1                                 data2
...   ...                               ...    ...                          
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-31 12:36:47 | 显示全部楼层    本楼为最佳答案   
我是一个结构体,我有一个数据元素,还有一个指针元素。
万万没想到,我的那个指针元素要指向一个和我一样类型的结构体变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-31 15:35:34 | 显示全部楼层
风扫地 发表于 2018-10-31 12:36
我是一个结构体,我有一个数据元素,还有一个指针元素。
万万没想到,我的那个指针元素要指向一个和我一样 ...

似乎有点明白,可是这个里面那个结构体没有定义呀??
而且可以和外面的那个结构体重名?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-31 15:49:06 | 显示全部楼层
claws0n 发表于 2018-10-31 11:55
int *p 是什么?指向【int】的指针
struct BiTNode *lchild 是什么?指向【struct BiTNode】的指针

那跟第五排那个相当于别名一样的那两个有什么区别呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;

这样的结构一直在重复,但最小单元就是【一个元素、两个指针】,所以被包装成结构体
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 12:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表