http://acm.hdu.edu.cn/showproblem.php?pid=1702 练习下stack,queue,我的代码如下(ac): #include<stdio.h> #include<string.h> int no[10001]; int first,last; void push(int a) { no[++last]=a; } int get1() //FIFO { int a=first; first++; return no[a]; } int get2()//FILO { int a=last; last--; return no[a]; } int main() { int n,m,t; char ch[10]; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d%s",&m,ch); first=0; last=-1; if(strcmp(ch,"FIFO")==0) { for(int j=0;j<m;j++) { scanf("%s",ch); if(strcmp(ch,"IN")==0) { scanf("%d",&t); push(t); } else { if(first>last) { first=0,last=-1; printf("None/n"); } else printf("%d/n",get1()); } } } else { for(int j=0;j<m;j++) { scanf("%s",ch); if(strcmp(ch,"IN")==0) { scanf("%d",&t); push(t); } else { if(last<first) { first=0,last=-1; printf("None/n"); } else printf("%d/n",get2()); } } } } return 0; } 不过有些代码重复,可以稍微进行一下修改,我就不修改啦!呵呵