第十章第十题(Queue类)(Queue class)

news/2024/10/31 1:33:38/

第十章第十题(Queue类)(Queue class)

  • *10.10(Queue类)10.6节给出了一个Stack类。设计一个名为Queue的类用于存储整数。像栈一样,队列保存元素。在栈中,元素以“后进先出”的方式获取。在队列中,元素以“先进先出”的方式 获取。该类包含:

    • 一个名为element的int[]类型的数据域,保存队列中的int值。
    • 一个名为size的数据域,保存队列中的元素个数。
    • 一个构造方法,以默认容量为8来创建一个Queue对象。
    • 方法enqueue(int v),用于将v加入队列中。
    • 方法dequeue(),用于从队列中移除元素并返回该元素。
    • 方法empty(),如果队列为空,该方法返回true。
    • 方法getSize(),返回队列的大小。

    画出该类的UML图并实现这个类,初始数组的大小为8.一旦元素个数超过了数组大小,数组大小将会翻倍。如果一个元素从数组的开始部分移除,你需要将数组中的所有元素往左边移动一个位置。编写一个测试程序,添加1到20的20个数字到队列中,然后将这些数字移除并显示它们。
    *10.10(Queue class)Section 10.6 gives a stack class. Design a class called queue to store integers. Like stacks, queues hold elements. In the stack, elements are obtained in a “last in, first out” manner. In a queue, elements are obtained in a first in, first out manner. This class contains:

    • A data field of type int [] named element, which holds the int value in the queue.
    • A data field named size holds the number of elements in the queue.
    • A constructor that creates a queue object with a default capacity of 8.
    • The enqueue (int V) method is used to add V to the queue.
    • The dequeue () method is used to remove the element from the queue and return it.
    • Method empty(), which returns true if the queue is empty.
    • Method getsize() returns the size of the queue.

    Draw the UML diagram of the class and implement the class. The initial size of the array is 8. Once the number of elements exceeds the size of the array, the size of the array will double. If an element is removed from the beginning of the array, you need to move all the elements in the array one position to the left. Write a test program, add 20 numbers from 1 to 20 to the queue, then remove the numbers and display them.

  • 参考代码:

package chapter10;public class Code_10 {public static void main(String[]  args){Queue qu = new Queue();for (int i = 0;i < 20;i++)qu.enqueue(i);while (!qu.empty()){System.out.print(qu.dequeue() + " ");}}
}
class Queue {private  int[] elements;private int size;public static final int DEFAULT_CAPACITY = 8;public Queue(){this(DEFAULT_CAPACITY);}public Queue(int capacity){elements = new int[capacity];}public void enqueue(int value){if (size >= elements.length){int[] temp = new int[elements.length * 2];System.arraycopy(elements,0,temp,0,elements.length);elements = temp;}elements[size] = value;size++;}public int dequeue(){int key = elements[0];for (int i = 0;i < size;i++){elements[i] = elements[i+1];}size--;return key;}public boolean empty(){return size == 0;}public int getSize(){return size;}
}
  • 结果显示:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
Process finished with exit code 0

在这里插入图片描述


http://www.ppmy.cn/news/148734.html

相关文章

联想微型计算机急救方法,lenovo微型计算机电脑无法启动文件丢失怎么办

满意答案 pd_bzx236 2015.11.22 采纳率:53% 等级:9 已帮助:417人 1、使用Windows启动盘 如果启动问题是由于活动分区的启动记录或者操作系统启动所使用的文件被破坏造成的,启动盘就能够解决问题。具体方法如下: 创建Windows启动盘,找一台配置相似、工作正常的Windows …

Stack类、Queue类和Deque类常用方法(防止忘记)

Stack类 栈&#xff08;Stack&#xff09;是一种后进先出&#xff08;LIFO&#xff09;的数据结构&#xff0c;操作栈的元素的方法有&#xff1a; 把元素压栈&#xff1a;push(E) 把栈顶的元素“弹出”&#xff1a;pop(E) 取栈顶元素但不弹出&#xff1a;peek(E) 在Java中&am…

联想工作站 装linux系统安装,分区、代码 - 在ThinkPad上安装Ubuntu的全过程详解_Linux教程_Linux公社-Linux系统门户网站...

分区 由于Thinkpad出厂时已经占用了一个隐藏分区来做HPA&#xff0c;而一个硬盘上最多能有四个主分区&#xff0c;其中扩展分区还占去了一个份额&#xff0c;因此分区方案的选择受到一点限制。我的分区方式如下&#xff1a; 代码: Device Filesystem Size Used Avail Use% Moun…

No binary rubies available for: osx/10.8/x86_64/ruby-1.9.2-p320解决

you need to run: rvm get head rvm autolibs enable rvm use --install 1.9.2 bundle install

磁盘调度策略 c语言实现(操作系统课程设计,书p320)

#include<stdio.h> #include<stdlib.h> #define maxsize 1000 //先进先出调度算法 void FIFO(int array[],int m) { int sum0,j,i,now; float avg; printf("\n 请输入当前的磁道号&#xff1a;"); scanf("%d",&now); printf("\n…

C++动态分配new(C++ primer,P320)

主要包含一下几部分内容 后续可能会再补充 new分配内存块的来源new时初始化new失败时new运算符、函数、替换函数定位new运算符定位new的重载 new分配内存块的来源 C primer plus书中P321页说&#xff0c;new负责在堆&#xff08;heap&#xff09;中找到一个足以能够满足要求…

【23考研】计算机408数据结构代码题强化阶段划重点(王道书)

视频链接:【23考研】10分钟带你整理408数据结构强化阶段代码题复习重点 本篇只适合考408的同学&#xff0c;请自主命题的同学自觉右上角掉 因为王道书为了照顾自主命题的同学&#xff0c;所以很多算法也给出了代码实现&#xff0c;实际上对于考408的同学&#xff0c;很多代码是…

【Python爬虫】采集电商商品评价信息

目录 一、数据采集逻辑二、数据Schema三、数据爬取1.导入库2.对爬虫程序进行伪装3.抓取商品评论信息4.防止反爬&#xff0c;每爬取一页数据后&#xff0c;设置程序休眠环节 四、数据存储1. 存储到csv 2.存储到数据库 一、数据采集逻辑 在进行数据采集之前&#xff0c;明确哪些…