1 typedef struct btnode *btlink;//二叉树结点结构定义 2 struct btnode 3 { 4 int data; //储存结点标号 5 btlink left; //指向左子树的指针 6 btlink right; //指向右子树的指针 7 }Btnode; 8 9 btlink NewBNode() //创建一个新的树的结点10 {11 btlink p;12 if(p=malloc(sizeof(Btnode))==0)13 Error("Exhausted memory.");14 else15 return p;16 }17 18 typedef struct binarytree *BinaryTree;//root是指向树根的指针19 typedef struct binarytree20 {21 btlink root;22 }BTree;23 24 BinaryTree BinaryInit() //Binary将root置为空指针25 {26 BinaryTree T=malloc(sizeof*T);27 T->root=0;28 return T;29 }30 31 int BinaryEmpty()//检测T的根结点root是否为空指针32 {33 return T->root==0;34 }35 36 int Root(BinaryTree T)//返回根节点的标号37 {38 if(BinaryEmpty(T))39 Error("Tree is Empty.");40 return41 T->root->data;42 }