二叉树的建立与输出

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#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;
}







相关文档
最新文档