BiTree
BiTree->data; //节点数据
BiTree->lchild; // 左子树
BiTree->rchild; // 右子树
根节点 V
左子树 L
右子树 R
先序遍历 V|L|R
中序遍历 L|V|R
后序遍历 L|R|V
先序遍历算法
preOrderTraverse(BiTree T) {
if(T==null)
return;
printf("%s", T->data); // 先显示节点数据
preOrderTraverse(T->lchild); // 再遍历左子树
preOrderTraverse(T->rchild); // 最后遍历右子树
}
中序遍历算法
InOrderTraverse(BiTree T) {
if(T==null)
return;
InOrderTraverse(T->lchild); // 先遍历左子树
printf("%s", T->data); // 再显示节点数据
InOrderTraverse(T->rchild); // 最后遍历右子树
}
后序遍历算法
postOrderTraverse(BiTree T) {
if(T==null)
return;
postOrderTraverse(T->lchild); // 先遍历左子树
postOrderTraverse(T->rchild); // 再后遍历右子树
printf("%s", T->data); // 最后显示节点数据
}
网友评论