国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++非遞歸隊(duì)列實(shí)現(xiàn)二叉樹的廣度優(yōu)先遍歷

2020-05-23 14:18:47
字體:
供稿:網(wǎng)友

這篇文章主要介紹了C++非遞歸隊(duì)列實(shí)現(xiàn)二叉樹的廣度優(yōu)先遍歷,實(shí)例分析了遍歷二叉樹相關(guān)算法技巧,并附帶了兩個(gè)相關(guān)算法實(shí)例,需要的朋友可以參考下

本文實(shí)例講述了C++非遞歸隊(duì)列實(shí)現(xiàn)二叉樹的廣度優(yōu)先遍歷。分享給大家供大家參考。具體如下:

廣度優(yōu)先非遞歸二叉樹遍歷(或者說層次遍歷):

 

 
  1. void widthFirstTraverse(TNode* root) { 
  2. queue<TNode*> q; // 隊(duì)列 
  3. q.enqueue(root); 
  4. TNode* p; 
  5. while(q.hasElement()) { 
  6. p = q.dequeue(); // 隊(duì)首元素出隊(duì)列 
  7. visit(p); // 訪問p結(jié)點(diǎn) 
  8. if(p->left) 
  9. q.enqueue(p->left); 
  10. if(p->right) 
  11. q.enqueue(p->right); 
  12. }  

附帶兩個(gè)相關(guān)示例:

1. 遞歸先序遍歷二叉樹

 

 
  1. void preTraverse(TNode* root) { 
  2. if(!root) 
  3. return
  4. visit(root); 
  5. preTraverse(root->left); 
  6. preTraverse(root->Right); 

2. 非遞歸先序遍歷二叉樹

 

 
  1. void preTraverseNonRecursive(TNode* root) { 
  2. stack<TNode> stack; // 棧 
  3. stack.push(root); 
  4. TNode* p; 
  5. while(!stack.isEmpty()) { // 棧非空 
  6. p = stack.pop(); 
  7. visit(p); 
  8. if(p->pRight) 
  9. s.push(p->pRight); 
  10. if(p->pLeft) 
  11. s.push(p->pLeft); 

希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长泰县| 澳门| 依兰县| 古蔺县| 裕民县| 永德县| 皮山县| 茂名市| 伊吾县| 建宁县| 烟台市| 穆棱市| 娄底市| 忻城县| 寿阳县| 古交市| 错那县| 于都县| 临潭县| 南部县| 喀什市| 马龙县| 三穗县| 潞西市| 保德县| 梅州市| 清涧县| 临清市| 朝阳县| 兴业县| 灵石县| 天津市| 噶尔县| 佛坪县| 壶关县| 乳山市| 民丰县| 湖南省| 汉阴县| 富阳市| 馆陶县|