zoukankan      html  css  js  c++  java
  • 队列逆置

    思路:用一个栈起到过渡的作用。先将队列中的元素放入栈中,然后初始化队列,再将元素从栈中取出放到初始化的队列中。

    代码:

    #include <iostream>
    #include <malloc.h>
    #include <string.h>
    using namespace std;
    
    const int maxn=10;
    
    typedef struct
    {
        char data[maxn];
        int front,rear;
    }Queue;
    
    typedef struct
    {
        char data[maxn];
        int top;
    }Stack;
    
    void Reverse(Queue &q,Stack &s)
    {
        s.top=-1;
        while(q.front!=q.rear)
        {
            s.data[++s.top]=q.data[(q.front+1)%maxn];
            q.front=(q.front+1)%maxn;
        }
        q.front=q.rear=-1;
        while(s.top!=-1)
        {
            q.data[(q.rear+1)%maxn]=s.data[s.top--];
            q.rear=(q.rear+1)%maxn;
        }
    }
    
    int main()
    {
        Queue q;Stack s;
        q.data[8]='a';
        q.data[9]='b';
        q.data[0]='c';
        q.data[1]='d';
        q.data[2]='e';
        q.data[3]='f';
        q.front=7;
        q.rear=3;
        Reverse(q,s);
        for(int i=0;i<=5;i++)
           cout<<q.data[i]<<endl;
        return 0;
    }
    


     

  • 相关阅读:
    3、生成证书请求文件
    2、申请苹果App ID
    登录iOS Dev Center
    SQL Server 合并行
    asp 月末 月初
    linux
    ASP数组全集,多维数组和一维数组[转]
    oracle 秒
    oracle 存储过程 包 【转】
    linux
  • 原文地址:https://www.cnblogs.com/vivider/p/3697679.html
Copyright © 2011-2022 走看看