你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.
为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.
10. 树
10.4 二叉树的遍历
### 二叉树的遍历
- 先序遍历 Preorder Traversal
- 中序遍历 Inorder Traversal
- 后序遍历 Postorder Traversal
- 层次遍历 Level Order Traversal
### 先序遍历
- 访问根节点
- 先序遍历左子树
- 先序遍历右子树

#### Preorder Traversal
### 先序遍历的递归算法
public void PreOrder1(BTreeClass bt)
{ PreOrder11(bt.b); }
private void PreOrder11(BTNode <Character> t)
{ if(t != null)
{ System.out.print(t.data + " ")
PreOrder11(t.lchild);
PreOrder11(t.rchild);
}
}
### 中序遍历
- 中序遍历左子树
- 访问根节点
- 中序遍历右子树

#### Inorder Traversal
### 中序遍历的递归算法
public void InOrder1(BTreeClass bt)
{ InOrder11(bt.b); }
private void InOrder11(BTNode <Character> t)
{ if(t != null)
{ InOrder11(t.lchild);
System.out.print(t.data + " ")
InOrder11(t.rchild);
}
}
### 后序遍历
- 后序遍历左子树
- 后序遍历右子树
- 访问根节点

#### Postorder Traversal
### 后序遍历的递归算法
public void PostOrder1(BTreeClass bt)
{ PostOrder11(bt.b); }
private void PostOrder11(BTNode <Character> t)
{ if(t != null)
{ PostOrder11(t.lchild);
PostOrder11(t.rchild);
System.out.print(t.data + " ")
}
}
### 递归遍历算法的应用
- 求结点个数
- 输出所有叶子结点
- 复制二叉树

### 10.4 二叉树的遍历
- 描述先序遍历过程中节点的访问顺序?
- 描述先序遍历过程中节点的访问顺序?
- 描述先序遍历过程中节点的访问顺序?
- 如何利用先序遍历求出二叉树的总结点数?
- 如何输出一棵二叉树的所有叶子节点?
----
[ 10.2 二叉树](dbds-10-2.html#/overview)
[| 练习 |](dbds-exec.html)
[ 10.5 二叉树与树的转换](dbds-10-5.html#/overview)