回 帖 发 新 帖 刷新版面

主题:[讨论]问几个有关于“树”的初级的问题,大家来帮帮忙吧~

问题一:经常看到有这样两个表达式:pa.data和pa->data

那什么时候用“.”什么时候用“->”呢?


问题二:在建树的时候,是不是先typedef struct再InitBiTree再CreateBiTree?

问题三:我看到:typedef struct BiTNode{
                  TElemType    data;
                  struct BiTree   *lchild,*rchild;
                }BiTNode,*BiTree;

那么,在结尾的BiTNode,*BiTree什么意思呢?我觉得只要有BiTNode就行了啊。为什么还要加上*BiTree呢?


谢谢啊~帮忙解答一下吧~

回复列表 (共5个回复)

沙发

问题一:经常看到有这样两个表达式: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 ->

板凳

谢谢LS的回答~

我在C语言书里看到,说.和->是有同样的效果,原来还有这样的区别,谢谢~

那第二个第三个问题呢~

帮忙回答一下吧。

3 楼

问题三:我看到: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 楼

[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 楼

哦,那就是先建一个空树(InitTree)然后再往里面放元素(CreateTree)?

谢谢~嘿嘿

我来回复

您尚未登录,请登录后再回复。点此登录或注册