• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

队列(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类图 

ed06c9d7246a3c579921801160a0639f.jpg

 

输出

 

posted on 2022-04-12 20:02  王陈锋  阅读(100)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3