C++數組實現二叉樹遍歷

jopen 9年前發布 | 2K 次閱讀 C/C++

# include

struct node { int l,r; }; struct node tree[100]; int path[100]; int ans; void init() { int i; ans = 0; for(i = 0 ; i < 100 ; i ++ ) tree[i].l = tree[i].r = -1,path[i] = -1; } void preOrderTree(int root) { if(root == -1 ) return ; path[ans++] = root; preOrderTree(tree[root].l);

preOrderTree(tree[root].r);

} int main() { int T,i,n; int root,a,b,c; scanf("%d",&T); while(T--) { init(); scanf("%d",&n); scanf("%d",&root); for(i = 0 ; i < n -1; i ++) { scanf("%d%d%d",&a,&b,&c); if(c == 0) { tree[a].l = b; } else { tree[a].r = b; } } preOrderTree(root); for(i = 0 ; i < n ; i ++) printf("%d%c",path[i],i' ':'/n');

}
return 0;

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!