栈与队列问题:双向队列

 

双向队列

Time Limit: 1000MS Memory limit: 65536K

题目描述

      想想双向链表……双向队列的定义差不多,也就是说一个队列的队尾同时也是队首;两头都可以做出队,入队的操作。
现在给你一系列的操作,请输出最后队列的状态;
命令格式:
LIN X  X表示一个整数,命令代表左边进队操作;
RIN X  表示右边进队操作;
ROUT
LOUT   表示出队操作;

输入

第一行包含一个整数M(M<=10000),表示有M个操作;
以下M行每行包含一条命令;
命令可能不合法,对于不合法的命令,请在输出中处理;

输出

输出的第一行包含队列进行了M次操作后的状态,从左往右输出,每两个之间用空格隔开;
以下若干行处理不合法的命令(如果存在);
对于不合法的命令,请输出一行X ERROR
其中X表示是第几条命令;

示例输入

8
LIN 5
RIN 6
LIN 3
LOUT
ROUT
ROUT
ROUT
LIN 3

示例输出

3
7 ERROR


 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 int main()
 5 {
 6     int f[100000];
 7     int i,j;
 8     int n;
 9     int sum=0,s=0;
10     int gh[100000]={-1};
11     scanf("%d",&n);
12     for(j=1;j<=n;j++)
13     {
14         char g[20];
15 
16         scanf("%s",g);
17         if(strcmp(g,"LIN")==0)
18         {
19             int x;
20             scanf("%d",&x);
21             if(sum==0)
22             f[sum]=x;
23             else
24             {
25             for(i=sum;i>=1;i--)
26             f[i]=f[i-1];
27             f[0]=x;
28             }
29             sum++;
30         }
31         if(strcmp(g,"RIN")==0)
32         {
33             int x;
34             scanf("%d",&x);
35             f[sum]=x;
36             sum++;
37         }
38         if(strcmp(g,"LOUT")==0)
39         {
40             if(sum==1)sum=0;
41             else if(sum==0)
42             {
43                 gh[s]=j;
44                 s++;
45             }
46             else
47             {
48             for(i=0;i<=sum-2;i++)
49             f[i]=f[i+1];
50             sum=sum-1;
51             }
52         }
53         if(strcmp(g,"ROUT")==0)
54         {
55             if(sum==0)
56             {
57                 gh[s]=j;
58                 s++;
59             }
60             else sum=sum-1;
61         }
62     }
63     for(i=0;i<=sum-1;i++)
64     if(i==sum-1)printf("%d\n",f[i]);
65     else printf("%d ",f[i]);
66     for(i=0;i<=s-1;i++)
67     if(gh[i]!=-1)printf("%d ERROR\n",gh[i]);
68     return 0;
69 }
View Code

 

posted @ 2013-07-30 17:34  狂盗一枝梅  阅读(328)  评论(0编辑  收藏  举报