二叉树的遍历 发表于 2025-03-27 分类于 数据结构 阅读次数: 1 【未完待续】二叉树的深度优先,广度优先遍历的递归与非递归代码实现 递归遍历 递归遍历写起来比较简单,代码也很简洁 前序遍历/先序遍历 1234567void preorder(BTree *p) { if (p!=NULL) { Visit(p); preorder(p->lchild); preorder(p->rchild); }} 中序遍历 1234567void inorder(BTree *p) { if (p!=NULL) { inorder(p->lchild); Visit(p); inorder(p->rchild); }} 后序遍历 1234567void postorder(BTree *p) { if (p!=NULL) { postorder(p->lchild); postorder(p->rchild); Visit(p); }} 非递归遍历 递归遍历是通过系统栈实现的,需要很大的开销