帮忙解释下二叉树,谢谢,详细点的

来源:百度知道 编辑:UC知道 时间:2024/06/17 22:42:45
如题

二叉树就是每个节点度数都小于等于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;
}//PreOrderTraverse

Status 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;
}//InOrderTraverse

Status PostOrderTraverse(BiTree T, Status(*Visit)(TElemType e)){
if(T){
if(PostOrderTraverse(T->lchild,Visit))