队列(Queue)是一种以“先进先出”的方式存放数据的数据结构。设计一个名为Queue的类用于存储整数
题目
该类包含:
一个名为elements的int[ ]类型的数据域,保存队列的int值
一个名为size的数据域,保存队列的元素个数
一个构造方法,使用默认的容量8创建一个Queue对象
方法enqueue(int value),用于将value加入到队列中
方法dequeue,用于从队列中移除元素并返回该元素
方法empty,如果队列为空的话,该方法返回true
方法getSize,返回队列的大小。
(1)画出该类UML图。
(2)编写程序实现Queue类,使之初始数组的大小为8。一旦元素个数超过了大小,数组大小将会翻倍。如果一个元素从数组的开始部分移除,你需要将数组中的所有元素往左边改变一个位置。
(3)编写一个测试程序,增加从0到20的21个成员,然后将这些数字移除并显示它们。
代码
import java.util.Arrays;
public class zuoye10_13 {
public static void main(String[] args) {//测试程序
Queue queue=new Queue();
for(int i=0;i<21;i++)
queue.enqueue(i);//增加0到20的21个成员
while(!queue.empty())//移除成员并显示
System.out.print(queue.dequeue()+" ");
}
}
class Queue{
private int[] elements;
private int size=0;
public Queue(){
elements=new int[8];
}
public void enqueue(int value){//用于将value加入到队列中
elements[size++]=value;
if(size==elements.length){//负责扩大数组空间
elements=Arrays.copyOf(elements, elements.length*2);
}
}
public int dequeue(){//用于从队列中移除元素并返回元素
int temp,i;
temp=elements[0];
for(i=0;i<size;i++)
{
elements[i]=elements[i+1];
}
size--;
return temp;
}
public boolean empty(){//如果队列为空的话,该方法返回true
if(size==0) return true;
else return false;
}
public int getSize(){
return size;
}//返回队列大小
}
UML类图
输出
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)