你的浏览器不支持本网站所要求的功能, 现在看到的是本网站简化版本.

为了获得最佳体验, 请使用最新的Chrome, Safari, Firefox 或 Edge 浏览器.

10. 树

10.4 二叉树的遍历

Powered by impress.js
Ver. 2408

### 二叉树的遍历 - 先序遍历 Preorder Traversal - 中序遍历 Inorder Traversal - 后序遍历 Postorder Traversal - 层次遍历 Level Order Traversal
### 先序遍历 - 访问根节点 - 先序遍历左子树 - 先序遍历右子树
![Preorder Traversal](img/c10/preorder.gif) #### 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](img/c10/inorder.gif) #### 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](img/c10/postorder.gif) #### 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 + " ") } }
### 递归遍历算法的应用 - 求结点个数 - 输出所有叶子结点 - 复制二叉树
![course 10.4 mindmap](img/c10/mindmap-10-4.png)
### 10.4 二叉树的遍历 - 描述先序遍历过程中节点的访问顺序? - 描述先序遍历过程中节点的访问顺序? - 描述先序遍历过程中节点的访问顺序? - 如何利用先序遍历求出二叉树的总结点数? - 如何输出一棵二叉树的所有叶子节点? ---- [ 10.2 二叉树](dbds-10-2.html#/overview) [| 练习 |](dbds-exec.html) [ 10.5 二叉树与树的转换](dbds-10-5.html#/overview)

黑公网安备23010302001726号   黑ICP备2024033110号-1