PTA 6-2 二叉樹的遍歷(25 分) 25分程式碼 (陣列實現層次遍歷)
阿新 • • 發佈:2018-12-24
前三個 中序 先序 後序遍歷直接遞迴就可以了
最後一個層次遍歷 可以把每一層 用陣列存起來,容易實現
(注: 部落格作為交流使用,請勿抄襲應付作業)
/* 你的程式碼將被嵌在這裡 */ void InorderTraversal( BinTree BT ) { if(BT == NULL) return; InorderTraversal(BT->Left); printf(" %c", BT->Data); InorderTraversal(BT->Right); } void PreorderTraversal( BinTree BT ) { if(BT == NULL) return; printf(" %c", BT->Data); PreorderTraversal(BT->Left); PreorderTraversal(BT->Right); } void PostorderTraversal( BinTree BT ) { if(BT == NULL) return; PostorderTraversal(BT->Left); PostorderTraversal(BT->Right); printf(" %c", BT->Data); } BinTree aa[10000], bb[10000]; int a, b; #include<string.h> void print() { memset(bb, NULL, sizeof bb); b = 0; for(int i = 0; i < a; ++i) { if(aa[i] != NULL) printf(" %c", aa[i]->Data); if(aa[i]->Left != NULL) bb[b++] = aa[i]->Left; if(aa[i]->Right != NULL) bb[b++] = aa[i]->Right; } a = b; for(int i = 0; i < b; ++i) aa[i] = bb[i]; } void LevelorderTraversal( BinTree BT ) { if(BT == NULL) return; a = 1; b = 0; aa[0] = BT; while(a) print(); }