基于数组实现一个使用一个FIFO的队列,支持push和pop操作。
qur[0]是用来记录队列中元素个数。
注:这个版本有问题,后面修改后有正确的。
import java.util.*; public class Main{ public static void push(int qur[],int num){ qur[0]++; qur[qur[0]]=num; } public static void pop(int qur[]){ System.out.println(qur[1]); for(int i=2;i<=qur[0];i++){ int temp = qur[i]; qur[i-1]=qur[i]; qur[i]=0; } } public static void main(String[] args){ Scanner sc = new Scanner(System.in); int size = sc.nextInt(); int a[] = new int[size+1]; while(sc.hasNext()){ String s = sc.next(); if(s=="push"){ int num = sc.nextInt(); push(a,num); } else if(s=="pop"){ pop(a); } } sc.close(); } }
更新版
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int size = sc.nextInt(); int[] a = new int[size]; int total = 0; while(sc.hasNext()){ String s = sc.next(); if(s.equals("push")){ int num = sc.nextInt(); total++; a[total]=num; } else if(s.equals("pop")){ System.out.println(a[1]); for(int i=1;i<=total-1;i++){ a[i]=a[i+1]; a[i+1]=0; } total--; } } sc.close(); } }