Acm6 樹的遍歷

2021-08-10 04:37:16 字數 1127 閱讀 1247

#include#include#includeusing namespace std;

//二叉樹結點

typedef struct bitnodebitnode,*bitree;

//按先序序列建立二叉樹

int createbitree(bitree &t)

else

return 0;

}//輸出

void visit(bitree t)

}//先序遍歷

void preorder(bitree t)

}//中序遍歷

void inorder(bitree t)

} //後序遍歷

void postorder(bitree t)

}/* 先序遍歷(非遞迴)

思路:訪問t->data後,將t入棧,遍歷左子樹;遍歷完左子樹返回時,棧頂元素應為t,出棧,再先序遍歷t的右子樹。

*/void preorder2(bitree t)

else

}//while

}/* 中序遍歷(非遞迴)

思路:t是要遍歷樹的根指標,中序遍歷要求在遍歷完左子樹後,訪問根,再遍歷右子樹。

先將t入棧,遍歷左子樹;遍歷完左子樹返回時,棧頂元素應為t,出棧,訪問t->data,再中序遍歷t的右子樹。

*/void inorder2(bitree t)

else

}//while

}//後序遍歷(非遞迴)

typedef struct bitnodepostbitnodepost,*bitreepost;

void postorder2(bitree t)

//左右子樹訪問完畢訪問根節點

while(!stack.empty() && (stack.top())->tag == 'r')

//遍歷右子樹

if(!stack.empty())

}//while

}//層次遍歷:運用佇列

void levelorder(bitree t)

//右子樹不空,將右子樹入隊

if(p->rchild != null) }}

int main()

ACM之二 二叉樹遍歷

一 二叉樹前序遍歷 void searchtree biarytree t 二 二叉樹中序遍歷 void searchtree biarytree t 三 二叉樹後序遍歷 void searchtree biarytree t 四 二叉樹按層遍歷 typedef struct queue dqueu...

ACM 二叉樹遍歷

題目1184 二叉樹遍歷 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 1562 解決 621 題目描述 編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹 以指標方式儲存 例如如下的先序遍歷字串 abc de g f 其中 表示的是空格,空格字元代表空樹。建立起此...

二叉樹遍歷的6種遍歷方法

二叉樹遍歷的6種遍歷方法 先序遍歷,中序遍歷,後序遍歷分別用遞迴跟非遞迴實現 主要 如下 include define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2type...