数据结构定义求助
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有存在的必要吗? 后面的BiTnode可以无视,不写也没关系
typedef int int;是符合语法格式的
BiTNode *a;
BiTree b;
确实是一样的
BiTree就是*BiTNode的封装,只是为了增加程序可读性
如果回答解决了问题,请设置最佳答案,谢谢 其实你大概理解了,BiTree的存在在平常情况下的确等价于BiTNode *,而用typedef来多定义一个BiTree在我看来只是为了后面函数声明或malloc动态申请空间时不用再麻烦的去敲BiTNode *,而可以用BiTree来代替
页:
[1]