終於自己搞定二叉樹的4種遍歷,單單看部落格沒有人講還是很難懂得,建議大家學習的時候,看一遍部落格,然後自己手動遞迴,就很容易懂了,不要用腦子去遞迴- -。
深刻理解下遍歷的原理。
//所謂建樹就是指的是給定乙個乙個節點可以找出他的左右孩子
//不建樹求某一層次遍歷(一般求前後遍歷可以不建樹)
//精髓就是根據n來限制樹枝的個數,寫乙個簡單的三層滿2叉樹,自己手動遞迴一下就會懂
#include#include#includeusing namespace std;
void print_postorder(int n, char *pre, char *in) //n代表節點個數,pre前 in 中 post後,不建樹用void
int main(void)
return 0;
}//根據後中求層次遍歷 (層次遍歷一般要先建樹)/*7
2 3 1 5 7 6 4
1 2 3 4 5 6 7
*/#include#include#include#includeusing namespace std;
const int maxn = 35;
int post[maxn], in[maxn], lch[maxn], rch[maxn];
int build(int n, int *in, int *post) //建樹用int ,返回root
void bfs(int root) //層次遍歷,先把根節點 push進去,然後根據根節點不斷把左右孩子push進去,注意順序
}int main(void)
二叉樹的前中後序遍歷
秋招記錄 對一棵二叉樹進行遍歷,我們可以採取3種順序進行遍歷,分別是前序遍歷 中序遍歷和後序遍歷。這三種方式是以訪問父節點的順序來進行命名的。假設父節點是n,左節點是l,右節點是r,那麼對應的訪問遍歷順序如下 前序遍歷 中左右 n l r 中序遍歷 左中右 l n r 後序遍歷 左右中 l r n ...
二叉樹的前 中 後序遍歷
import lombok.data import lombok.noargsconstructor data noargsconstructor class treenode 前序遍歷 根 左 右 public void preorder 遞迴向右子樹前序遍歷if this right null ...
二叉樹的前 中 後序遍歷
前序 根左右 中序 左根右 後序 左右根 前序遍歷 124563 中序遍歷 546213 後序遍歷 564231 package datastructure public class binarytreedemo class binarytree public binarytree hero roo...