C++BiTree的用法,二叉树创建问题
这个BiTree到底是什么?在一个二叉树创建的算法中看见typedefstructbitnode{intdata;structbitnode*lchild,*rchild...
这个BiTree到底是什么?在一个二叉树创建的算法中看见
typedefstruct bitnode{
int data;
struct bitnode *lchild,*rchild;
}*bitree,tree;
bitree *t;
这样的语句,开始还以为是定义了一个指向结构体bitnode的指针*bitree和一个结构体变量tree,
但是下面bitree *t; ,bitree不是一个指向结构体bitnode的指针变量吗,怎么可以座位数据类型再定义一个指针。这个BiTree到底是什么?
还有void createbitree(bitree &t,int c)这是一个创建二叉树的函数,但是形参那里bitree &t 这是什么意思 展开
typedefstruct bitnode{
int data;
struct bitnode *lchild,*rchild;
}*bitree,tree;
bitree *t;
这样的语句,开始还以为是定义了一个指向结构体bitnode的指针*bitree和一个结构体变量tree,
但是下面bitree *t; ,bitree不是一个指向结构体bitnode的指针变量吗,怎么可以座位数据类型再定义一个指针。这个BiTree到底是什么?
还有void createbitree(bitree &t,int c)这是一个创建二叉树的函数,但是形参那里bitree &t 这是什么意思 展开
1个回答
展开全部
你要看清楚啊,定义的前面还有一个typedef呢!这是定义类型。
等价于
struct bitnode{
int data;
struct bitnode *lchild,*rchild;
};
typedef bitnode* bitree;
bitree不是变量,是类型。
等价于
struct bitnode{
int data;
struct bitnode *lchild,*rchild;
};
typedef bitnode* bitree;
bitree不是变量,是类型。
追问
那就是说后面那个tree也是定义类型bitnode咯?
追答
是的,两个都是类型,一个表示的是bitnode*类型。另一个表示的是bitnode类型
#include
#include
#include
using namespace std;
typedef struct bitnode{
int data;
struct bitnode *lchild,*rchild;
}*bitree,tree;
int main(int argc, char *argv[])
{
bitree t=new bitnode;//bitree是类型,表示的是bitnode*类型。
t->data=1;
t->lchild=0;
t->rchild=0;
tree s;//tree是类型,表示的是bitnode类型
s.data=1;
s.lchild=0;
s.rchild=0;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询