这个代码到底错在哪,请高手们帮我看看,好么?非常的感谢!

[复制链接]
查看11 | 回复1 | 2011-7-11 20:44:47 | 显示全部楼层 |阅读模式
#include
using namespace std;
struct node{
        char data;
        node *lc;
        node *rc;
};
struct stack{
        char data;
        stack *next;
       
};
stack *top=NULL;
node *create_tree(node *p);
void push(char m);
node *no_preorder(node*p);
int noempty_stack();
node *no_inorder(node*p);
node *pop(node*p);
void main(){
        node *p=new node;
        p=create_tree(p);

no_preorder(p);

no_inorder(p);
}
node *create_tree(node *p){
       
        node *p1=new node;
        cin>>p1->data;
        if (p1->data=='*')
        {
                p1=NULL;
        }
        else
        {
                p1->lc=create_tree(p1->lc);
                p1->rc=create_tree(p1->rc);
        }
        return p1;
}
node *no_preorder(node*p){
        if(p) push(p->data);
                while (noempty_stack())
                {
                        p=pop(p);
                        p->lc=no_preorder(p->lc);
                        p->rc=no_preorder(p->rc);
                }
return p;
}
node *no_inorder(node*p){
        while (p||noempty_stack())
        {
                if (p)
                {
                        push(p->data);
                        p=p->lc;
                }
                else
                {
                        p=pop(p);
                        p=p->rc;
                }
        }
        return p;
}
void push(char m){
        stack *p=new stack;
        p->data=m;
        p->next=top;
        top=p;
}
node *pop(node *p){
//
p=top;
        top=top->next;
        coutdata<<"";
        //fre(p);
        //return temp;
        return p;
}
int noempty_stack(){
        if (top!=NULL)
                return 1;
        else
                return 0;
}
这个代码的作用是生成了一颗树,并采用非递归的前序no_preorder(p);

和中序no_inorder(p);,分别访问,并输出··!

回复

使用道具 举报

千问 | 2011-7-11 20:44:47 | 显示全部楼层
这个就是那个代码段,主要我是想知道它的作用,可以的话,可以详细解释每...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行