首页 热点资讯 义务教育 高等教育 出国留学 考研考公

c语言中序线索化二叉树的函数参数有这样一段代码BiThrTree &Thrt,这里的&做什么用?

发布网友 发布时间:2022-04-25 15:18

我来回答

1个回答

热心网友 时间:2023-10-12 01:30

你的那个代码从风格上看应该是严蔚敏书里的。
需要注意的是,那本书里的代码采用的是类C语言,并不能直接拿来就用,而是要根据需要和环境进行一定的修改。里面的&是借鉴了C++里的引用的概念,是想说在函数中的改变会作用到Thrt变量自身,而不是作用到那个变量的一个副本上。如果用C语言,可以改为指针形式的,如果用C++,则也可以采用引用。只要能够改变那个变量即可。追问果然有道理,这样的话,我是不是可以这样。
我定义的函数:void inthreadtree(struct bithrnode *thrt,struct bithrnode *root)
然后在main函数中引用inthreadtree(thrt,root)
这样能行吗?

追答先看原函数,Status InOrderThreading(BiThrTree &Thrt, BiThrTree T);
因此在C语言中用指针的话,函数的参数类型应该为(BiThrTree * Thrt,BiThrTree T)。我们知道BiThrTree本来就是struct BiThrNode *类型的,因此参数类型就是(struct BiThrNode **Thrt,struct BiThrNode *T)。由此可见,void inthreadtree(struct bithrnode *thrt,struct bithrnode *root)是达不到预定的效果的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com