| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我想要我wa的数据啊.......wa的郁闷了...#include <iostream>
using namespace std;
struct tree
{
char ch;
tree *child[101];
int len;
tree *parent;
int flag;
};
void InitTree(tree *&t);
void SetTree(tree *&t);
void PrintTree(tree *t);
int main()
{
tree *t;
while (1)
{
InitTree(t);
SetTree(t);
for (int i=1; i<=t->len; i++)
PrintTree(t->child[i]);
printf("\n");
}
return 0;
}
void InitTree(tree *&t)
{
t=new tree;
t->ch='#';
t->len=0;
int i;
for (i=1; i<=100; i++)
t->child[i]=NULL;
t->parent=NULL;
t->flag=0;
}
void SetTree(tree *&root)
{
int i;
char ct;
scanf("%c",&ct);
tree *p=root;
if (ct=='(' || ct=='[')
{
p->len++;
p->child[p->len]=new tree;
p=p->child[p->len];
p->ch=ct;
p->len=0;
for (i=1; i<=100; i++) p->child[i]=NULL;
p->parent=root;
p->flag=0;
SetTree(p);
}
else
if (ct==')')
{
while (p->ch!='(' && p->ch!='#')
p=p->parent;
if (p->ch!='#')
{
p->flag=1;
p=p->parent;
}
else
{
p=root;
p->len++;
p->child[p->len]=new tree;
p=p->child[p->len];
p->ch='(';
p->len=0;
for (i=1; i<=100; i++) p->child[i]=NULL;
p->parent=root;
p->flag=1;
p=root;
}
SetTree(p);
}
else
if (ct==']')
{
while (p->ch!='[' && p->ch!='#')
p=p->parent;
if (p->ch!='#')
{
p->flag=1;
p=p->parent;
}
else
{
p=root;
p->len++;
p->child[p->len]=new tree;
p=p->child[p->len];
p->ch='[';
p->len=0;
for (i=1; i<=100; i++) p->child[i]=NULL;
p->parent=root;
p->flag=1;
p=root;
}
SetTree(p);
}
}
void PrintTree(tree *t)
{
int i;
if (!t) return ;
printf("%c",t->ch);
if (t->flag)
{
for (i=1; i<=t->len; i++)
PrintTree(t->child[i]);
if (t->ch=='(') printf("%c",')');
else printf("%c",']');
}
else
{
if (t->ch=='(') printf("%c",')');
else printf("%c",']');
for (i=1; i<=t->len; i++)
PrintTree(t->child[i]);
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator