树中不太理解的一个问题

Big鹏 2009-01-13 09:53:44

typedef struct bitnode
{
elemtype data;
struct bitnode *lchild,*rchild;

}*bitree; // 这个*bitree是什么意思???

int init(bitree *dt) //这里用到bitree *又如何理解?
{
*dt=NULL;
return 1;
}

...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
brookmill 2009-01-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 mupengzhi 的帖子:]
int init(bitree *dt) //这里用到bitree *又如何理解?
{
*dt=NULL;
return 1;
}
[/Quote]
这里用到bitree *,实际上就是struct bitnode **
用两级指针是为了在函数init里修改*dt并且能在调用者函数里生效,也就是我们经常说的给形参和实参赋值的问题
返回1大概是初始化成功的标志

这样调用init:
int main()
{
bitree tree; // tree是一个struct bitnode *
if (init(&tree))
{
// init成功,tree被置为NULL
}
}


传入指针来修改一些参数,再用返回值表示是否成功,是很常用的技巧,这是一个典型的例子
sagegz 2009-01-13
  • 打赏
  • 举报
回复
bitree其实就是指向结点的指针,可以类似看成
struct BitNode *
waizqfor 2009-01-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaoyisnail 的回复:]
bitree是struct bitnode*的一个别名
[/Quote]
bitree == struct bitnode*
bitree *dt == struct birnode ** dt
xiaoyisnail 2009-01-13
  • 打赏
  • 举报
回复
bitree是struct bitnode*的一个别名
FancyMouse 2009-01-13
  • 打赏
  • 举报
回复
bitree是struct bitnode*

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧