读书人

考研数据结构题目达人请进,该如何解

发布时间: 2012-02-05 12:07:14 作者: rapoo

考研数据结构题目,达人请进
某二叉树后序遍历序列为ΦΦAΦΦEΦΦCDB,其中Φ代表空格,表示空二叉树。问能否以此序列作为输入,后序创建二叉树?若不能,说明理由。若能,画出对应二叉树。

[解决办法]
通过一个存储二叉树的堆栈来实现...
伪代码大体如下:

C/C++ code
Stack tree_stack;while(input=get_input()){//一个一个地读取输入    if(isblank(input)){//输入是空格        tree t=maketree(input);//构建一棵空二叉树        tree_stack.push(t);    }    else{        tree t1=tree_stack.pop();        tree t2=tree_stack.pop();        tree t3=merge_tree(t1,t2);//以输入为根结点合并t1和t2        tree_stack.push(t3);    }}tree result=tree_stack.pop();
[解决办法]
嗯,同意,可以创建.代码如下,仅供参考:
typedef struct bitnode
{char data;
struct bitnode *lchild,*rchild;
}bitnode,*bitree;
bitnode *creatbitree(bitnode *p)
{char ch;
ch=getchar();
if(ch=='Φ') p=NULL;
else
{p=(bitnode *)malloc(sizeof(bitnode));
p->lchild=creatbitree(p->lchild);
p->data=ch;
p->rchild=creatbitree(p->rchild);}
return p;
}

读书人网 >C语言

热点推荐