一、设计一个名为Queue的类用于存储整数。在栈中,元素以“后进先出”的方式获取。在队列中,元素以“先进先出”方法获取。该类包含:
- 一个名为element的int[]类型的数据域,保存队列中的int值
- 一个名为size的数据域,保存队列中的元素个数
- 一个构造方法,以默认容量为8来创建一个Queue对象
- 方法enqueue(int v),用于将v加入队列中
- 方法dequeue(),用于从队列中移除元素并返回该元素
- 方法empty(),如果队列为空,该方法返回true;
- 方法getSize(),返回队列的大小。
- 初始数据的大小为8。一旦元素个数超过了数组大小,数组大小将会翻倍。如果一个元素从数组的开始部分移除,你需要将数组中的所有元素往左边移动一个位置。编写一个测试程序,添加从1到20的20个数字到队列中,然后将这些数字移除并显示它们。
以下代码仅供参考
以下代码仅供参考
以下代码仅供参考
/** *作者:魏宝航 *2020年11月22日,下午15:31 */ public class test { public static void main(String[] args) { Queue queue=new Queue(); for(int i=1;i<=20;i++){ queue.enqueue(i); } if(queue.empty()){ System.out.println("队列为空"); } else { System.out.println("队列不空"); } for(int i=0;i<20;i++){ System.out.print(queue.dequeue()+" "); } System.out.println(); if(queue.empty()){ System.out.println("队列为空"); } else { System.out.println("队列不空"); } } } class Queue{ private int[] element; private int size; public Queue(){ element=new int[8]; } public void enqueue(int v){ if(size==element.length){ int[] temp=element; element=new int[2*element.length]; for(int i=0;i<temp.length;i++){ element[i]=temp[i]; } } element[size]=v; size++; } public int dequeue(){ int temp=element[0]; for(int i=0;i<element.length-1;i++){ element[i]=element[i+1]; } size--; return temp; } public boolean empty(){ if(size==0) return true; return false; } public int getSize(){ return size; } }