欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java用数组实现循环队列的示例

程序员文章站 2024-02-27 22:29:09
复习了下数据结构,用java的数组实现一下循环队列。 队列的类 //循环队列 class cirqueue{ private int queuesize;...

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

队列的类

//循环队列
class cirqueue{
 private int queuesize;
 private int front;
 private int rear;
 private int[] queuelist ;
 
 public cirqueue(int queuesize){
  this.queuesize = queuesize; 
  queuelist = new int[queuesize];
  front = 0;
  rear = 0;
 }
 
 //获取队列头元素
 public int getqueueelement(){
  //如果队列不为空,返回队头元素,否则抛出异常提示队列为空
  int element = -1;
  if(!isempty()){
   element = queuelist[front];
   return element;
  }
  else {
   system.out.println("队列为空");
   return -1;
  }
  
 }
 
 //出队
 public int dequeue(){
  int element = -1;
  if(!isempty()){
   element = queuelist[front];
   front =(front+1)%queuesize;
   return element;
  }
  else {
   system.out.println("队列为空");
   return -1;
  }
  
 }
 
 
 
 
 
 //入队
 public void enqueue(int element){
  //如果队列未满,添加元素到队尾,否则提示队列已满
  if(!isfull()){
   queuelist[rear] = element ;
   rear = (rear+1)%queuesize;
   
  }
  else {
   system.out.println("队列已满");
  }
 }
 
 //判断队列是否为空
 public boolean isempty(){
  boolean b = false;
  if(rear == front)
   b = true;
  return b;
 }
 
 
 //判断队列是否已满
 public boolean isfull(){
  boolean b = false;
  if((rear+1)%queuesize == front)
   b = true;
  return b;
 }

}

创建对象并测试

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用数组实现循环队列的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。