C语言二叉树定义问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:30:56
typedef struct BTREE
{
int data;
struct BTREE *left;
struct BTREE *right;
}
BTNode,BTree;

这一段代码是什么意思?typedef不是定义一个字符串来表示一个类型吗?这里怎么没有?还有,最后一行是什么意思?
搞错了,应该是这样:

……
typedef struct BTREE
{
int data;
struct BTREE *left;
struct BTREE *right;
}
BTNode,*BTree;
BTree root;
BTNode stack[50];
BTNode popstack[50];
……

typedef什么意思我知道,就是为什么后面会出现两个新类型名???

typedef struct BTREE
{
int data;
struct BTREE *left;
struct BTREE *right;
}
BTNode,*BTree;
---------------------------
这段是定义一个二叉树结构体BTREE~

BTree root;
---------------------------
这是二叉树的根结点~~

BTNode stack[50];
---------------------------
这是用来存储BTNode型结点的栈~~

BTNode popstack[50];
---------------------------
这是用来存储弹出栈的BTNode型结点的栈~

希望能帮上你~~

C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能。
看这个例子:
typedef struct stu

{ char name[20];

int age;

char sex;

} STU;

定义STU表示stu的结构类型,然后可用STU来说明结构变量:

STU body1,body2;

typedef定义的一般形式为:

typedef 原类型名 新类型名

其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。
{
int data;
struct BTREE *left;
struct BTREE *right;
} 它只是BTREE的定义部分

BTNode,BTree是新类型名,整个