二叉樹——使用非遞迴方法,建立樹、前中後序及層級遍歷樹。
建立樹時,按照左子樹小於樹根,右子樹大於樹根,這樣中序遍歷就是有序表
#include#include//層級遍歷時,用到了queue模板類
#include//前中後遍歷時,用到了stack模板類
using namespace std;
class node //樹節點定義
; node(int num):data(num),parent(null),left(null),right(null),tag(0){}; //建構函式,初始化類成員變數
};class tree //樹定義
;tree::tree(int num,int len) //建構函式,插入樹節點
} newnode->parent=par;
if(par->data > newnode->data)
par->left=newnode;
else
par->right=newnode;
}void tree::preordertree() //先序遍歷
if(!s.empty())
}}void tree::inordertree() //中序遍歷
if(!s.empty())
}}void tree::postordertree() //後序遍歷
if(!s.empty())
else
} }}void tree::levelordertree() //層級遍歷
}int main()
; tree t(num,8);
cout<<"前序遍歷: ";
t.preordertree();
cout
t.inordertree();
cout
t.postordertree();
cout
t.levelordertree();
cout
}
資料結構 二叉樹的遞迴 非遞迴遍歷
複習一下二叉樹遞迴非遞迴的先中後序遍歷 寫非遞迴後序遍歷的時候卡殼了,參考了一下網上的思路,大概有兩種,一種是標記每個節點是否有走過,如果父節點的左右子節點都標記訪問過,則可以訪問父節點 一種是定義乙個指標,指向上乙個訪問的節點,如果某父節點的右子節點為null或者是上乙個訪問的節點,則該父節點應當...
資料結構 二叉樹遍歷非遞迴實現
資料結構中二叉樹的遍歷主要分為先序,中序和後序。順序是相對根節點來說的。先序中序非遞迴實現比較簡單,後序較為複雜些,需要判斷右子樹是否為空或遍歷完。以下為三種遍歷方法的非遞迴c實現 include include typedef struct binode binode,bitree typedef...
資料結構 二叉樹遍歷 非遞迴演算法
二叉樹的遍歷非遞迴演算法。include include define maxsize 100 typedef char elemtype using namespace std typedef struct node btnode void createbtnode btnode b,char s...