前中后序遍历树代码
作者:
常台盘の超炮
,
2022-09-24 21:56:09
,
所有人可见
,
阅读 141
void PreOrder(BiTreeNode* root, void visit(DataType item)){
//前序遍历二叉树root,访问操作为visit
if (root != NULL)
{
visit(root->data);
PreOrder(root->leftChild, visit);
PreOrder(root->rightChild, visit);
}
}
void InOrder(BiTreeNode* root, void visit(DataType item)) {
//中序遍历二叉树root,访问操作为visit
if (root != NULL)
{
InOrder(root->leftChild, visit);
visit(root->data);
InOrder(root->rightChild, visit);
}
}
void PostOrder(BiTreeNode* root, void visit(DataType item)) {
//后序遍历二叉树root,访问操作为visit
if (root != NULL)
{
PostOrder(root->leftChild, visit);
PostOrder(root->rightChild, visit);
visit(root->data);
}
}
当然了,一般写遍历树的时候,
if (root != NULL){}一般都是写成
if(!root) return 0;
以上都是dfs的说法。层序遍历是bfs的说法。