二叉树的建立与输出

#include
using namespace std;
#include
#define maxsize 100
class btree
{
public:
char data;
btree *lchild;
btree*rchild;
};
void print(btree*s)
{
if(s!=NULL)
{
print(s->lchild);
cout<data<<" ";
print(s->rchild);
}
}


int main()
{
btree*st[maxsize],*p=NULL,*b=NULL;
string s;
cout<<"请输入二叉树"<cin>>s;
s.push_back('\0');
char ch;
int i=0,j=0,top=-1,k;
ch=s[j];
while(ch!='\0')
{
switch(ch)
{
case '(':top++;st[top]=p;k=1;break;
case ')':top--;break;
case ',':k=2;break;
default:p=new btree;
p->data=ch;p->lchild=p->rchild=NULL;
if(b==NULL)b=p;
else
{
switch(k)
{
case 1:st[top]->lchild=p;break;
case 2:st[top]->rchild=p;break;
}
}
}
j++;
ch=s[j];
}
print(b);
system("PAUSE");
return 0;
}







相关文档
最新文档