标签:栈 队列 数据结构
本题目考察对数据结构中的栈、队列的知识的了解,我们可以把出站的顺序看做队列,进站可以看做压入站
#include <iostream> #include <queue> #include <stack> using namespace std; int JudgeTrainSequence (int maxNum, char *pOutSeq) { queue<int> Q;//出站的队列 stack<int> S; for(int i=0;i<maxNum;i++) Q.push(pOutSeq[i]-'0'); int i=1;//当前火车的编号 while(!Q.empty()) { //cout<<"i= "<<i<<endl; if(S.empty()||(S.top()!=Q.front())) { S.push(i);//进站 //cout<<"push "<<i<<endl; if(i>maxNum) break; i++; } if(!S.empty()&&(S.top()==Q.front())) { //cout<<"pop "<<S.top()<<endl; S.pop();Q.pop(); } } cout<<Q.size()<<endl; return (Q.empty()==true)?1:0; }
标签:栈 队列 数据结构
原文地址:http://blog.csdn.net/surpassgood123/article/details/44875157