C++在类中实现二叉树的建立和遍历
#include<bits/stdc++.h>
using namespace std;
typedef struct Node{
char data;
struct Node *lchild;
struct Node *rchild;
}Node;
typedef Node* node;
class Tree{
private:
public:
node head;
Tree(){}
~Tree(){}
Tree(node &T){
head=T;
}
void create(node &head) const{
char ch;cin>>ch;
if(ch=='#') head=NULL;
else{
head=new Node;
head->data=ch;
create(head->lchild);
create(head->rchild);
}
}
void behindsee(Node *head){
if(head){
behindsee(head->lchild);
behindsee(head->rchild);
cout<<head->data<<" ";
}
}
void unbehindsee(Node *head){
if(head){
cout<<head->data<<" ";
unbehindsee(head->lchild);
unbehindsee(head->rchild);
}
}
void middlesee(Node *head){
if(head){
middlesee(head->lchild);
cout<<head->data;
middlesee(head->rchild);
}
}
int getnode(Node *head){
if(head==NULL){
return 0;
}
else return 1+getnode(head->lchild)+getnode(head->rchild);
}
};
int main()
{
node T=new Node;
Tree trees;
trees.create(trees.head);
trees.behindsee(trees.head);
}