首页 > 其他 > 详细

栈的压入 弹出序列

时间:2016-08-14 12:54:50      阅读:186      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!