一般来说,二叉树使用链表来定义。和普通链表的区别是,由于二叉树每个结点有两条出边,因此指针域变成了两个结点–分别指向左子树的根结点地址和右子树的根结点地址。如果某个子数不存在,则指向
struct node{
typename data;//数据域
node* lchild;//指向左子树根结点的指针
node* rchild;//指向右子树根结点的指针
};
//由于在二叉树建树前根结点不存在,因此其一般地址为NULL
node* root = NULL;
//如果需要新建结点(例如往二叉树中插入结点的时候),就可以使用下面的函数:
//生成一个新结点 结点权值为v
node* newNode(int v){
node* Node = new node;//申请一个node型变量的地址空间
Node -> data = v;//结点权值为v
Node -> lchild = Node -