来源:互联网 发布:电脑自带录屏软件 编辑:程序博客网 时间:2024/05/22 00:09

STL编程

#include <iostream>#include <stack>using namespace std;void InitStack(stack<int> &s, int n);void InitDest(stack<int> &s, int n);void InitStack(stack<int> &s, int n)  //初始化原始数据栈{for (int i = n; i > 0; i--){s.push(i);}}void InitDest(stack<int> &s, int n)  //初始化目的数据栈{int temp;for (int i = 0; i < n; i++){cin >> temp;s.push(temp);}}int main(){stack<int> SourceStack, TempStack, DestStack;int n, m;cin >> n >> m;InitStack(SourceStack, n);InitDest(DestStack, n);if (SourceStack == DestStack)cout << "Yes" << endl;elsecout << "No" << endl;return 0;}

全排列:列车调度

#include <iostream>#include <queue>#include <stack>using namespace std;bool IsPerm(int n);bool IsPerm(int n){    queue<int> QueueA;   //A轨道列车    stack<int> Station;   //中转站S    bool ok=true;    int i;    for(i=1;i<=n;i++)    {        QueueA.push(i);   ///将1,2,3,...,n的队列存在QueueA中    }    for(i=0;i<n;i++)    {        int temp;        cin>>temp;        while(!QueueA.empty() && temp>=QueueA.front())        {            Station.push(QueueA.front());            QueueA.pop();        }        if(!Station.empty() && temp == Station.top())        {            Station.pop();  //如果x在栈顶,则输出X        }        else        {            ok=false;            while(++i<n)                cin>>temp;            break;        }    }    return ok;}int main(){    int n;    cin>>n;    if(IsPerm(n)==true)        cout<<"OK"<<endl;    else        cout<<"No"<<endl;    return 0;}



0 0
原创粉丝点击