#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...