package com.mytest.controller;
import java.util.Arrays;
public class Demo02 {
public static int[] array = new int[10];
public static void main(String[] args) {
Queue queue = new Queue();
queue.setMaxSize(array.length);
queue.setHeadFlag(0);
queue.setEndFlag(0);
System.out.println(Arrays.toString(array));
// 先取空值
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
// 第一次添加值
System.out.println(addElement(queue,111));
System.out.println(addElement(queue,222));
System.out.println(addElement(queue,333));
System.out.println(Arrays.toString(array));
// 取值
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
// 添加十個值
System.out.println(addElement(queue,111));
System.out.println(Arrays.toString(array));
System.out.println(addElement(queue,222));
System.out.println(addElement(queue,333));
System.out.println(addElement(queue,444));
System.out.println(addElement(queue,555));
System.out.println(addElement(queue,666));
System.out.println(addElement(queue,777));
System.out.println(addElement(queue,888));
System.out.println(Arrays.toString(array));
System.out.println(addElement(queue,999));
System.out.println(Arrays.toString(array));
System.out.println(addElement(queue,1000));
System.out.println(Arrays.toString(array));
// 取值
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
System.out.println(getElement(queue));
System.out.println(Arrays.toString(array));
}
static String addElement(Queue queue,Integer num){
Integer headFlag = queue.getHeadFlag();
Integer endFlag = queue.getEndFlag();
Integer maxSize = queue.getMaxSize();
if (headFlag==0 && endFlag ==0){
array[0]=num;
queue.setEndFlag(1);
return "添加成功";
}
if (endFlag>headFlag && endFlag-headFlag >=maxSize-1 || endFlag<headFlag && headFlag-endFlag <=1){
return "添加失敗,隊列已滿";
}
if (endFlag==maxSize-1){
array[endFlag] = num;
queue.setEndFlag(0);
return "添加成功";
}
array[endFlag] = num;
queue.setEndFlag(++endFlag);
return "添加成功";
}
static String getElement(Queue queue){
Integer headFlag = queue.getHeadFlag();
Integer endFlag = queue.getEndFlag();
Integer maxSize = queue.getMaxSize();
if (headFlag==endFlag){
return "獲取失敗;隊列爲空";
}
/* if (headFlag==0){
}*/
if (headFlag==maxSize-1){
array[headFlag]=0;
queue.setHeadFlag(0);
return "獲取成功";
}
array[headFlag] = 0;
queue.setHeadFlag(++headFlag);
return "獲取成功";
}
}
package com.mytest.controller;
import java.util.Objects;
public class Queue {
// 數組最大存儲值
private Integer maxSize;
// 數組中隊列的頭位置
private Integer headFlag;
// 數組中隊列的尾位置
private Integer endFlag;
public Queue() {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Queue queue = (Queue) o;
return Objects.equals(maxSize, queue.maxSize) &&
Objects.equals(headFlag, queue.headFlag) &&
Objects.equals(endFlag, queue.endFlag);
}
@Override
public int hashCode() {
return Objects.hash(maxSize, headFlag, endFlag);
}
@Override
public String toString() {
return "Queue{" +
"maxSize=" + maxSize +
", headFlag=" + headFlag +
", endFlag=" + endFlag +
'}';
}
public Integer getMaxSize() {
return maxSize;
}
public void setMaxSize(Integer maxSize) {
this.maxSize = maxSize;
}
public Integer getHeadFlag() {
return headFlag;
}
public void setHeadFlag(Integer headFlag) {
this.headFlag = headFlag;
}
public Integer getEndFlag() {
return endFlag;
}
public void setEndFlag(Integer endFlag) {
this.endFlag = endFlag;
}
}