實驗五 樹和二叉樹實驗2
阿新 • • 發佈:2018-12-03
確定一個二叉樹,用鏈式儲存結構方法儲存
#ifndef BiTree_H #define BiTree_H struct BiNode { char data; BiNode*lchild,*rchild; }; class BiTree { public: BiTree(){root=Creat(root);} ~BiTree(){Release(root);} void PreOrder(){PreOrder(root);} void InOrder(){InOrder(root);} void PostOrder(){PostOrder(root);} private: BiNode*root; BiNode*Creat(BiNode*bt); void Release(BiNode*bt); void PreOrder(BiNode*bt); void InOrder(BiNode*bt); void PostOrder(BiNode*bt); }; #endif
#include<iostream> using namespace std; #include"Bitree.h" BiNode*BiTree::Creat(BiNode*bt) //chuangjianerchash { char ch; cout<<"請輸入建立一棵二叉樹的結點資料"<<endl; cin>>ch; if(ch=='#') return NULL; else { bt=new BiNode; bt->data=ch; bt->lchild=Creat(bt->lchild); bt->rchild=Creat(bt->rchild); } return bt; } void BiTree::Release(BiNode*bt) { if(bt!=NULL) { Release(bt->lchild); Release(bt->rchild); delete bt; } } void BiTree::PreOrder(BiNode*bt) { if(bt==NULL)return; else { cout<<bt->data<<" "; PreOrder(bt->lchild); PreOrder(bt->rchild); } } void BiTree::InOrder(BiNode*bt) { if(bt==NULL)return; else { InOrder(bt->lchild); cout<<bt->data<<" "; InOrder(bt->rchild); } } void BiTree::PostOrder(BiNode*bt) { if(bt==NULL)return; else { PostOrder(bt->lchild); PostOrder(bt->rchild); cout<<bt->data<<" "; } }
#include<iostream> using namespace std; #include"Bitree.h" int main() { BiTree T; cout<<"前序遍歷"<<endl; T.PreOrder(); cout<<endl; cout<<"中序遍歷"<<endl; T.InOrder(); cout<<endl; cout<<"後序遍歷"<<endl; T.PostOrder(); cout<<endl; return 0; }