帮忙解释下二叉树,谢谢,详细点的
发布网友
发布时间:2022-07-13 14:50
我来回答
共1个回答
热心网友
时间:2023-11-03 01:40
二叉树就是每个节点度数都小于等于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))
if(PostOrderTraverse(T->rchild,Visit))
if(Visit(T->data))
return
OK;
return
ERROR;
}else
return
OK;
}//PostOrderTraverse