码迷,mamicode.com
首页 > 其他好文 > 详细

栈的压入 弹出序列

时间:2016-08-14 12:57:52      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:

template<typename T>
bool isPopOrder(vector<T> vec, vector<T> order)
{
    stack<T> sta;
    if(vec.size() != order.size())
    {
        return false;
    }
    int i = 0, j = 0;
    while(j < order.size())
    {
        if(i < vec.size() && order[j] == vec[i])
        {
            ++j;
            ++i;
            continue;
        }
        else if(!sta.empty() && order[j] == sta.top())
        {
            ++j;
            sta.pop();
            continue;
        }
        else
        {
            if(i >= vec.size() && sta.empty())
                return false;
            sta.push(vec[i++]);
        }
    }

    return sta.empty();
}

输入两个整数序列,第一个表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。

栈的压入 弹出序列

标签:

原文地址:http://www.cnblogs.com/ddddddwwwxx/p/5769762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!