[size=4]有勇气的话,测一下自己(经验):看看你能从以下几个常用子函数中,用最短时间,发现问题?我的记录(第一次时):三分钟。呵呵。。可是第一次的时候啊,当你熟悉了,时间当然会短啦![/size]

void initstack(Stack &s)
{
    s.base=(Pan *)malloc(STACKINITSIZE*sizeof(Pan));
    if(!s.base)
        cout<<"error!"<<endl;
    s.top=s.base;
    s.stacksize=STACKINITSIZE;
}



void push(Stack &s,pan x)
{
    if(s.top-s.base>=s.stacksize-1)
        {
            s.base=(Pan *)realloc(s.base,(STACKINITSIZE+STACKINCREMENT)*sizeof(Pan));
            s.top=s.base+s.stacksize;
            s.stacksize+=STACKINCREMENT;
        }
    *(s.top++)=x;
}



Pan Gettop(Stack &s)
{
    Pan serial;
    while(s.top!=s.base)
    serial=*(s.top-1);
     return serial;
        
}



void pop(Stack &s)
{
    if(!emptystack(s))
        {    s.top=s.top-1;
            return ;
        }
}


bool emptystack(Stack &s)
{
    if(s.top==s.base)
        return 1;
    else
        return 0;
}[size=6]身经百战,使我磨练一双慧眼![/size]