二叉树结构体指针的用法
结构体
typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
//两种命名方式,效果,BiTree 等价于 BiTNode *;
两种创建引用方式。
01:
int InsertAVL(BiTree* T,int e,int *taller)
{
//taller变量存放,增加一个结点后,这棵树长高了没有,长高了就不平衡了。
if(!*T)
{
*T = (BiTree)malloc(sizeof(BiTNode));
(*T)->data = e;
(*T)->lchild = (*T)->rchild = NULL;
(*T)->bf = 0;
}
}
传入参数的类型是BiThrTree T,(即BiTNode * T),在函数体里面,*T是指针指向结点,(*T)->data的形式取结点值,可改变指针值。
02
int InsertAVL02(BiTNode* T,int e,int *taller)
{
//taller变量存放,增加一个结点后,这棵树长高了没有,长高了就不平衡了。
if(!T)
{
T = (BiTree)malloc(sizeof(BiTNode));
T->data = e;
T->lchild = T->rchild = NULL;
T->bf = 0;
}
}
传入参数的类型是,BiTNode* T,在函数体里面,T是指针,指向结点,T->data的形式取结点值,可改变指针值。