标签: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