帮忙解释下二叉树,谢谢,详细点的
二叉树就是每个节点度数都小于等于2的树。 二叉树一般定义为:typedef struct BiNode{ TElemType data;//TElemType是数据元素的类型 struct BiNode *lchild,*rchild; //左右孩子指针}BiTNode,*BiTree;以C语言为例,二叉树先序、中序、后序遍历的递归算法为:Status PreOrderTraverse(BiTree T, Status(*Visit)(TElemType e)){if(T){ if(Visit(T->data)) if(PreOrderT...全部
二叉树就是每个节点度数都小于等于2的树。
二叉树一般定义为:typedef struct BiNode{ TElemType data;//TElemType是数据元素的类型 struct BiNode *lchild,*rchild; //左右孩子指针}BiTNode,*BiTree;以C语言为例,二叉树先序、中序、后序遍历的递归算法为:Status PreOrderTraverse(BiTree T, Status(*Visit)(TElemType e)){if(T){ if(Visit(T->data)) if(PreOrderTraverse(T->lchild,Visit)) if(PreOrderTraverse(T->rchild,Visit)) return OK; return ERROR; }else return OK;}//PreOrderTraverseStatus InOrderTraverse(BiTree T, Status(*Visit)(TElemType e)){if(T){ if(InOrderTraverse(T->lchild,Visit)) if(Visit(T->data)) if(InOrderTraverse(T->rchild,Visit)) return OK; return ERROR; }else return OK;}//InOrderTraverseStatus PostOrderTraverse(BiTree T, Status(*Visit)(TElemType e)){if(T){ if(PostOrderTraverse(T->lchild,Visit)) if(PostOrderTraverse(T->rchild,Visit)) if(Visit(T->data)) return OK; return ERROR; }else return OK;}//PostOrderTraverse。收起