學習筆記 c++ (用類來實現二叉樹的建立與遍歷)
程式碼:
#include<iostream> #include<stdio.h> using namespace std; class BiTree { public: char data; BiTree *lchild,*rchild; }; //建立一顆二叉樹,約定使用者按照前序遍歷的方式輸入資料 void CreateBiTree(BiTree* &T) { //建立一顆樹,其中A->Z字元代表樹的資料,用(空格)“ ”表示空樹 char c; scanf("%c",&c); if( ' ' == c)//結點等於 { T = NULL; } else { T = new BiTree; T->data = c; //根結點資料 CreateBiTree(T->lchild); //進入左兒子 CreateBiTree(T->rchild); //再進入右兒子 } } //訪問二叉樹的結點的具體操作,要拿資料做什麼 void visit(char data, int level) { cout<<data<<" 位於第"<<level<<"層!"<<endl; }
//前序遍歷二叉樹 void qianxiubianli(BiTree* &T,int level) { if(T) { visit(T->data,level); //訪問根資料 qianxiubianli(T->lchild,level+1); //進入左兒子 qianxiubianli(T->rchild,level+1); //再進入右兒子 } }
int main(int argc, char** argv) { int level = 1; BiTree *T=NULL; CreateBiTree(T); qianxiubianli(T,level); return 0; }