首页 > 代码库 > 二叉树的遍历
二叉树的遍历
二叉树的遍历
和一般的树不同,二叉树的子结点分为 左孩子 和 右孩子,左孩子、右孩子均有可能为空。
也就是说,二叉树上结点的子结点之间是有序的。
正因如此,在二叉树中,除了深度优先搜索和广度优先搜索以外,还有几种特殊的遍历方法:先序遍历、中序遍历和后序遍历。
先序遍历是指,在对二叉树进行遍历时,先访问当前子树的根结点,再依次访问左子树和右子树。
C++ 示例代码如下:
int lch[MAX_N], rch[MAX_N];
void preorder(int u) {
cout << "visiting " << u << endl;
if (lch[u]) {
preorder(lch[u]);
}
if (rch[u]) {
preorder(rch[u]);
}
}
中序遍历是指在对二叉树进行遍历时,先访问当前子树的左子树,再访问当前子树的根结点,最后访问当前子树的右子树。
C++ 示例代码如下:
int lch[MAX_N], rch[MAX_N];
void preorder(int u) {
if (lch[u]) {
preorder(lch[u]);
}
cout << "visiting " << u << endl;
if (rch[u]) {
preorder(rch[u]);
}
}
后序遍历是指在对二叉树进行遍历时,先依次访问当前子树的左右子树,最后访问当前子树的根结点。
C++ 示例代码如下:
int lch[MAX_N], rch[MAX_N];
void preorder(int u) {
if (lch[u]) {
preorder(lch[u]);
}
if (rch[u]) {
preorder(rch[u]);
}
cout << "visiting " << u << endl;
}
二叉树的遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。