标题:关于严蔚敏书中的由原表达式建树算法的一些问题
只看楼主
陈陆林520
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-3-9
结帖率:66.67%
 问题点数:0 回复次数:0 
关于严蔚敏书中的由原表达式建树算法的一些问题
void CrtExptree(BiTree &T,char exp[]) {
    InitStack(S); Push(S,"#"); InitStack(PTR);
    p=exp; ch=*p;
    while(!(GetTop(S)=='#'&&ch=='#')) {
        if(!IN(ch,OP)) CrtNode(t,ch); // 建立叶子结点并入栈
        else {
            switch(ch) {
            case '(': Push(S,ch); break;
            case ')':
            {
                Pop(S, c);
                while (c!='(' ) {
                    CrtSubtree(t,c); Pop(S,c);
                }
                break;
            }
            default:
            {
                while(!Gettop(S,c)&&(precede(c,ch))) {
                    CrtSubtree(t,c); Pop(S,c);
                }
                if ( ch!='#') Push(S,ch);
                break;
            }
            }
        }
        if(ch!='#') { p++; ch=*p;}
    }
    Pop(PTR,T);
}

建立叶子结点的算法
void CrtNode(BiTree &T,char ch) {
    T=(BiTNode *)malloc(sizeof(BiTNode));
    T->data=ch;
    T->lchild=T->T-rchild=NULL;
    Push(PTR,T);
}

建立子树的算法
void CrtSubtree(BiTree &T,char ch) {
    T=(BiTNode *)malloc(sizeof(BiTNode));
    T->data=ch;
    Pop(PTR,rc); T->rchild=rc;
    Pop(PTR,lc); T->lchild=lc;
    Push(PTR,T);

}这是严蔚敏的书上 给的一个算法   
请问给位大神,  while(!Gettop(S,c)&&(precede(c,ch)这句中  !Gettop(S,c)怎么理解,小弟问过很多人 ,他们都没搞清楚,望哪位大神解决一下
搜索更多相关主题的帖子: 表达式 叶子 
2012-12-05 21:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-389791-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034538 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved