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

循环队列

时间:2018-05-08 23:54:36      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:rate   oid   system   Stub   width   队列   png   inf   com   

技术分享图片
/*
循环队列 我们用数组实现 特点 :先进先出 我们设置一个队头front和队尾rear 当队列为空时front=rear,入队列时把数据放到rear的位置,然后rear向下移动一个 * 当rear再向下移动一位就和front指向同一块区域时(即rear+1=front),队列就已经装满了 * 出队列时,获取并返回front指向的区域所存的数据,front向下移动一个,当front=rear时队列为空 * */ package com.tulun; public class TestMl { public static void main(String[] args) { // TODO Auto-generated method stub QueueLink q1=new QueueLink(); for(int i=0;i<10;i++){ q1.push(i); } q1.show(); q1.pop(); q1.show(); int n=q1.getTop(); System.out.println(n); } } class QueueLink{ int elem[]; int front; int rear; public QueueLink(){ this(10); } public QueueLink(int size){ this.elem=new int[size]; this.front=0; this.rear=0; } int usedSize=0; int allSize=10; //判断是否为满 public boolean isFull(){ if((this.rear+1)%this.allSize==this.front){ return true; } return false; } //入队 public void push(int val){ if(isFull()){ return; } this.elem[this.rear]=val; this.rear=(this.rear+1)%this.allSize;//后移一位 usedSize++; } public boolean isEmpty(){ //return this.front=this.rear; if(this.front==this.rear){ return true; } return false; } public void pop(){ if(isEmpty()){ return; } this.elem[this.front]=-1; this.front=(this.front+1)%this.allSize; usedSize--; } public int getTop(){ if(isEmpty()){ return -1; } return this.elem[this.front]; } public void show(){ for(int i=this.front;i<rear;i=(i+1)%this.allSize){ System.out.print(this.elem[i]+" "); } System.out.println(); } }

 

循环队列

标签:rate   oid   system   Stub   width   队列   png   inf   com   

原文地址:https://www.cnblogs.com/ioio2/p/9011597.html

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