二叉樹的儲存(輸入一串字元)與遍歷
描述
用連結串列的方式實現二叉樹的儲存和基本操作,包括CreateBinTree()、PreorderTraversal()、InorderTraversal()、PostorderTraversal()等操作。
輸入
ABCDFGI00E00H000000
輸入為一行字元型資料,字元之間無空格,表示二叉樹的層序生成序列,’0’表示空結點。
輸出
ABDFECGHI
DBEFAGHCI
DEFBHGICA
直接用STL的queue模板
#include<iostream>
#include<queue>
using namespace std;
struct TNode {
char Data;
struct TNode* Left;
struct TNode* Right;
};
typedef struct TNode* BinTree;
BinTree CreatBinTree(string s) {
char c;
BinTree BT, T;
queue<BinTree> q;
if (s[0] != '0') {
BT = (BinTree)malloc(sizeof(struct TNode));
BT->Data = s[0];
BT->Left = BT->Right = NULL;
q.push(BT);
}
else
return NULL;
for (int i = 1;i<s.size();i++) {
T = q.front();
q.pop();
c = s[i];
if (c == '0')
T->Left = NULL;
else {
T->Left = (BinTree)malloc(sizeof(struct TNode));
T->Left->Data = c;
T->Left->Left = T->Left->Right = NULL;
q.push(T->Left);
}
i++;
c = s[i];
if (c == '0')
T->Right = NULL;
else {
T->Right = (BinTree)malloc(sizeof(struct TNode));
T->Right->Data = c;
T->Right->Left = T->Right->Right = NULL;
q.push(T->Right);
}
}
return BT;
}
void PreorderTraversal(BinTree BT) {
if (BT) {
cout << BT->Data;
PreorderTraversal(BT->Left);
PreorderTraversal(BT->Right);
}
}
void InorderTraversal(BinTree BT){
if (BT) {
InorderTraversal(BT->Left);
cout << BT->Data;
InorderTraversal(BT->Right);
}
}
void PostorderTraversal(BinTree BT){
if (BT) {
PostorderTraversal(BT->Left);
PostorderTraversal(BT->Right);
cout << BT->Data;
}
}
int main() {
string x;
cin >> x;
BinTree t = CreatBinTree(x);
PreorderTraversal(t);
cout << endl;
InorderTraversal(t);
cout << endl;
PostorderTraversal(t);
return 0;
}
相關文章
- Mysql 儲存過程
- 分散式文件儲存資料庫之MongoDB備份與恢復
- 儲存過程與儲存函式
- 【C語言進階】通訊錄的儲存和載入
- 物件和函式的區別就是物件可以儲存狀態
- k8s-儲存
- Docker容器中資料兩種持久化儲存方式:卷和掛載宿主目錄
- kubernetes儲存類與PV與PVC關係及實踐
- mariadb-2-在centos中修改mariadb資料的儲存路徑
- BFS求無權圖的單源最短路徑-鄰接矩陣儲存
- 11 線性表的順序儲存結構
- 資料結構知識點--儲存結構與邏輯結構
- linux online掃描共享儲存磁碟(無需reboot)
- 2020年Q3長江儲存佔全球快閃記憶體市場份額的1% 升至全球第七
- python儲存超大資料excel表格——大於65532
- 推動資料儲存方式變革的因素(附原資料表)
- BERT微調進行命名實體識別並將模型儲存為pb形式
- 三、金融業企業服務匯流排鏈路追蹤監控分析平臺的建設實踐--CASSANDRA儲存方案
- 實用小程式(1)之讀取xml並儲存為txt文字