定义结点
typedef struct BTNode
{
int data;
struct BTNode *lchild; //指向左孩子结点指针
struct BTNode *rchild; //指向右孩子结点指针
}BTNode;
以上述二叉树结点为例,有两种写法
①BTNode BT;
②BTNode *BT;
BT=(BTNode*)malloc(sizeof(BTNode));
①就是制作一个结点。
②的执行过程:先定义一个结点的指针BT,然后用函数malloc()来申请一个结点的空间,最后让指针BT来指向这片内存空间。由此完成一个结点的制作。②中使用到了系统已有函数malloc()(空间申请函数)来申请所需内存空间的方法。
区别
②句中的BT是个指针型变量,它是用来存储刚制作好的结点地址的。BT变量现在指向刚生成的结点,但是以后BT可以离开这个结点而转向其他的结点。但是①不可以,①中BT就是结点的名字,定义好后就脱离不这个结点了。