元素出栈、入栈顺序的合法性

来源:互联网 发布:nginx 禁止外网访问 编辑:程序博客网 时间:2024/06/05 22:51

如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。
入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。

template<class T>class Legitimacy{public:    bool Legitimacy(const T* cur, const T* dest, int csize,int dsize)    {        assert(cur);        assert(dest);        if (dsize!=csize || dsize==0)        {            return false;        }        while (*dest!=0 && *cur!=0)        {            s.push(*dest++);            if (s.top()!=*cur)            {                s.push(*dest++);            }            while (!s.empty() && s.top()==*cur)            {                s.pop();                cur++;            }        }        return s.empty() ? true : false;    }private:    stack<T> s;};
原创粉丝点击