前言
太菜了,树的遍历忘的一干二净。上机时脑子空荡荡,知识在垃圾堆。特别写一篇博客理一下。
前序遍历
三种遍历方式中算法最为简单的一个,一直向左遍历,将遍历到的点输出,如果有右节点,就进入右节点,开始新一轮循环。
1 | void preoder(BT* T) |
中序遍历
和前序遍历类似,只是输出的位置要做更改。
1 | void inoder(BT* T) |
后序遍历
后序稍稍麻烦,需要判断上次访问的节点是位于左子树,还是右子树。若是位于左子树,则需跳过根节点,先进入右子树,再回头访问根节点;若是位于右子树,则直接访问根节点。
1 | void postorder(BT* T) |