码迷,mamicode.com
首页 > 其他好文 > 详细

队列Queue

时间:2020-01-12 20:13:23      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:empty   没有   ++   需要   class   ring   方法   print   this   

简介

  • 是一种一种储存数据的容器,遵循着先进先出的原则,没有特定顺序,但可以在内部设定方法输出特定元素如首元素
  • 包含两个指针,一个front指向第一个元素的前一个位置,一个rear指向最后一个元素,两者初始值均为-1
  • front=rear时队列为空,rear=maxSize时队列为满
  • 其他方法可以在类的内部定义方法即可

从零开始创建并调试一个队列(用数组实现)

 1 //创建一个队列类
 2 class ArrayQueue{
 3     //定义基本数据
 4     private int maxSize;
 5     private int front=-1;
 6     private int rear=-1;
 7     private int[] arr;
 8     //定义构造方法
 9     public ArrayQueue(int maxSize) {
10         this.maxSize=maxSize;
11         arr=new int[maxSize];
12         front=-1;
13         rear=-1;
14     }
15     //定义判断是否为空的方法
16     public boolean isEmpty() {
17         return front==rear;
18     }
19     //定义判断是否满的方法
20     public boolean isFull() {
21         return rear==maxSize-1;
22     }
23     //定义添加元素的方法
24     public void addQueue(int n) {
25         if(isFull()) {
26             System.out.println("队列已满,无法加入新元素!!");
27         }
28         rear++;
29         arr[rear]=n;
30     }
31     //定义取出元素的方法
32     public int getQueue() {
33         if(isEmpty()) {
34             throw new RuntimeException("队列空,无法取出数据!!");
35             //此处就不需要return了,throw自带该功能
36         }
37         return arr[++front];
38     }
39     //定义显示全部队列的方法
40     public void showAll() {
41         if(isEmpty()) {
42             throw new RuntimeException("队列为空!!");
43         }
44         for(int i=front+1;i<=rear;i++) {
45             System.out.print(arr[i]);
46         }
47     }
48     //定义显示头部的方法
49     public void showHead() {
50         if(isEmpty()) {
51             throw new RuntimeException("队列为空!!");
52         }
53         System.out.println("队列头部为:"+arr[front+1]);
54     }
55 }
 1     public static void main(String[] args) {
 2         // TODO Auto-generated method stub
 3         ArrayQueue a1=new ArrayQueue(7);
 4         for(int i=1;i<=7;i++) {
 5             a1.addQueue(i);
 6         }
 7         a1.showAll();
 8         System.out.println();
 9         System.out.println(a1.getQueue());
10         a1.showAll();
11         System.out.println();
12         a1.showHead();
13 
14     }

运行结果

1234567
1
234567
队列头部为:2

队列Queue

标签:empty   没有   ++   需要   class   ring   方法   print   this   

原文地址:https://www.cnblogs.com/hbc314/p/12184440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!