李白菩萨蛮注音版:用VC实现括号法输入二叉树。

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 01:40:53
简单的说就是用括号输入一个二叉树,如A(B(C,D),E(F,G))。用VC实现这个算法。

struct tree
{
struct e
{
char data
e *fa; //指向父亲
e *son; //指向儿子
}*father;
void init();
void addson(e *fat,e *t);//添加子树
e godown(e *t); //进入子树
e getup(e *t); //返回父树
};
void init()
{
father=new element;
father->fa=NULL;
father->son=NULL;
}
void tree::addson(e *t,e *fat)
{
fat->son=e;
e->fa=fat;
}
tree::e * tree:: godown(e *t)
{
return t->fa;
}
tree::e * tree:: getup(e* t)
{
return t->son;
}
void con(char *c,tree* c)
{
tree::e temp1;
tree::e temp2;
int type=0;
temp2=c->father;
for(int i=0;c[i]!='\0';i++)
{
temp1.data=c[i];
if(c[i]!='('&&c[i]!=','&&c[i]!=')')
{

addson(temp1,temp2);
}
else if(c[i]=='(')
{
temp2=godown(temp2);//得到子树句柄
i++;
}
else if(c[i]==',')
{
i++;
}
else if(c[i]==')')
{
i++
temp2=getdown(temp2);//得到父句柄
}
}
}
}