Tree结点
#include <iostream>
using namespace std;
struct Tree{
int data;
Tree * child;
Tree * brother;
Tree(int x){
data = x;
child = brother =NULL;
}
~Tree(){
if(child) delete child;
if(brother) delete brother;
}
void add(Tree * t){
if(child == NULL)
child = t;
else
child->add_brother(t);
}
void add_brother(Tree * t){
if(brother == NULL)
brother = t;
else
brother->add_brother(t);
}
void pre_order(){
cout << data << " ";
if(child) child ->pre_order();
if(brother) brother ->pre_order();
}
void in_order(){
if(child) child ->pre_order();
cout << data << " ";
if(brother) brother ->pre_order();
}
};
int main(){
Tree a(1);
a.add(new Tree(2));
a.add(new Tree(3));
a.add(new Tree(4));
a.child->brother->add(new Tree(5));
a.child->brother->add(new Tree(6));
a.pre_order();
cout<<endl;
a.in_order();
cout<<endl;
}