首页 > 编程语言 > 详细

Java用数组实现循环队列

时间:2017-09-12 18:16:04      阅读:423      评论:0      收藏:0      [点我收藏+]

复习了下数据结构,用Java的数组实现一下循环队列。

队列的类

 1 //循环队列
 2 class CirQueue{
 3     private int QueueSize;
 4     private int front;
 5     private int rear;
 6     private int[] queueList ;
 7     
 8     public CirQueue(int QueueSize){
 9         this.QueueSize = QueueSize;    
10         queueList = new int[QueueSize];
11         front = 0;
12         rear = 0;
13     }
14     
15     //获取队列头元素
16     public int getQueueElement(){
17         //如果队列不为空,返回队头元素,否则抛出异常提示队列为空
18         int element = -1;
19         if(!isEmpty()){
20             element = queueList[front];
21             return element;
22         }
23         else {
24             System.out.println("队列为空");
25             return -1;
26         }
27         
28     }
29     
30     //出队
31     public int deQueue(){
32         int element = -1;
33         if(!isEmpty()){
34             element = queueList[front];
35             front =(front+1)%QueueSize;
36             return element;
37         }
38         else {
39             System.out.println("队列为空");
40             return -1;
41         }
42         
43     }
44     
45     
46     
47     
48     
49     //入队
50     public void enQueue(int element){
51         //如果队列未满,添加元素到队尾,否则提示队列已满
52         if(!isFull()){
53             queueList[rear] = element ;
54             rear = (rear+1)%QueueSize;
55             
56         }
57         else {
58             System.out.println("队列已满");
59         }
60     }
61     
62     //判断队列是否为空
63     public boolean isEmpty(){
64         boolean b = false;
65         if(rear == front)
66             b = true;
67         return b;
68     }
69     
70     
71     //判断队列是否已满
72     public boolean isFull(){
73         boolean b = false;
74         if((rear+1)%QueueSize == front)
75             b = true;
76         return b;
77     }
78 
79 }

创建对象并测试

package com.test;

import java.util.*;


public class StructTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        //新建并初始化存储空间为3的循环队列(方便判断队满条件,浪费一个数组空间)
        CirQueue cirQueue = new CirQueue(4);
        //入队3个元素
        cirQueue.enQueue(1);
        cirQueue.enQueue(2);
        cirQueue.enQueue(3);
        
        //获取队头元素,获取 但不改变队列
        int temp = cirQueue.getQueueElement();
        System.out.println(temp);
        
        //出队 获取队头元素,并且队头指针往后移一位
        temp = cirQueue.deQueue();
        System.out.println(temp);
        
        //再次获取队头元素
        temp = cirQueue.getQueueElement();
        System.out.println(temp);
        
        
    }

}

输出:

1
1
2

 

Java用数组实现循环队列

原文:http://www.cnblogs.com/Vozeen/p/7511414.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!