Java用数组实现循环队列的示例
程序员文章站
2024-02-29 17:13:58
复习了下数据结构,用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用数组实现循环队列的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
下一篇: 清空mysql 查询缓存的可行方法