您的位置:首页 > 其它

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

2017-09-19 18:10 267 查看
如:入栈的序列(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;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: