鱼C论坛

 找回密码
 立即注册
查看: 4090|回复: 2

[已解决]数据结构定义求助

[复制链接]
发表于 2016-12-4 18:23:58 | 显示全部楼层 |阅读模式
2鱼币
typedef struct BiTNode     -------》这里有一个BiTNode
{
      Elemtype data;
      struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;       ---------->为什么这里又有一个BiTNode

问题一:
以这个二叉树的数据结构为例,为什么上面有一个BiTNode,然后下面又有一个BiTNode?
typedef 不是应该给某个数据类型起别名吗?为什么会起的别名和原名是一样的?
问题二:
我的理解是 BiTree 是定义指向BiTNode这种结点的的指针,
如果是这样的话,以下2种定义指针的方法有什么区别呢?
BiTNode *a;
BiTree b;
这2种定义的指针 a 和 b 不都是指向BiTNode 的指针吗?应该没有区别吧?
如果按照这个思路想的话,BiTree有存在的必要吗?
最佳答案
2016-12-4 18:23:59
后面的BiTnode可以无视,不写也没关系
typedef int int;是符合语法格式的
BiTNode *a;
BiTree b;
确实是一样的
BiTree就是*BiTNode的封装,只是为了增加程序可读性
如果回答解决了问题,请设置最佳答案,谢谢

最佳答案

查看完整内容

后面的BiTnode可以无视,不写也没关系 typedef int int;是符合语法格式的 BiTNode *a; BiTree b; 确实是一样的 BiTree就是*BiTNode的封装,只是为了增加程序可读性 如果回答解决了问题,请设置最佳答案,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-4 18:23:59 | 显示全部楼层    本楼为最佳答案   
后面的BiTnode可以无视,不写也没关系
typedef int int;是符合语法格式的
BiTNode *a;
BiTree b;
确实是一样的
BiTree就是*BiTNode的封装,只是为了增加程序可读性
如果回答解决了问题,请设置最佳答案,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-4 12:35:28 | 显示全部楼层
其实你大概理解了,BiTree的存在在平常情况下的确等价于BiTNode *,而用typedef来多定义一个BiTree在我看来只是为了后面函数声明或malloc动态申请空间时不用再麻烦的去敲BiTNode *,而可以用BiTree来代替
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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