主题:[讨论]问几个有关于“树”的初级的问题,大家来帮帮忙吧~
rele
[专家分:0] 发布于 2008-01-11 00:33:00
问题一:经常看到有这样两个表达式:pa.data和pa->data
那什么时候用“.”什么时候用“->”呢?
问题二:在建树的时候,是不是先typedef struct再InitBiTree再CreateBiTree?
问题三:我看到:typedef struct BiTNode{
TElemType data;
struct BiTree *lchild,*rchild;
}BiTNode,*BiTree;
那么,在结尾的BiTNode,*BiTree什么意思呢?我觉得只要有BiTNode就行了啊。为什么还要加上*BiTree呢?
谢谢啊~帮忙解答一下吧~
回复列表 (共5个回复)
沙发
justforfun626 [专家分:18460] 发布于 2008-01-11 00:48:00
问题一:经常看到有这样两个表达式:pa.data和pa->data
那什么时候用“.”什么时候用“->”呢?
In C/C++
when pa is a pointer, use ->
when pa is an Object, use .
Therefore, your naming is misleading, better use
a.data和pa->data
a and pa are different types.
In Java, all are pointer, but it is called reference, use . not ->
板凳
rele [专家分:0] 发布于 2008-01-11 16:45:00
谢谢LS的回答~
我在C语言书里看到,说.和->是有同样的效果,原来还有这样的区别,谢谢~
那第二个第三个问题呢~
帮忙回答一下吧。
3 楼
justforfun626 [专家分:18460] 发布于 2008-01-11 19:19:00
问题三:我看到:typedef struct BiTNode{
TElemType data;
struct BiTree *lchild,*rchild;
}BiTNode,*BiTree;
那么,在结尾的BiTNode,*BiTree什么意思呢?我觉得只要有BiTNode就行了啊。为什么还要加上*BiTree呢?
Same as problem 1
BiTNode is the object type,
*BiTNode is the pointer to the object type
4 楼
justforfun626 [专家分:18460] 发布于 2008-01-12 00:38:00
[quote]问题二:在建树的时候,是不是先typedef struct再InitBiTree再CreateBiTree?
[/quote]
My guess is yes, you have to define something before using it.
You cannot call rele before he/she was born, can you??
[em2][em1]
5 楼
rele [专家分:0] 发布于 2008-01-12 12:59:00
哦,那就是先建一个空树(InitTree)然后再往里面放元素(CreateTree)?
谢谢~嘿嘿
我来回复