基本框架
代码实现
SimpleQueue的实现:
package com.immunize.queue;
import java.util.ArrayList;
import java.util.List;
public class MyQueue {
private List<Integer> data;
private int p_start;
public MyQueue() {
data = new ArrayList<Integer>();
p_start = 0;
}
public boolean enQueue(int x) {
data.add(x);
return true;
};
public boolean deQueue() {
if (isEmpty() == true) {
return false;
}
p_start++;
return true;
}
public int Front() {
return data.get(p_start);
}
public boolean isEmpty() {
return p_start >= data.size();
}
public void Print() {
System.out.print("[");
for (int i = p_start; i < data.size(); i++) {
if (i == data.size() - 1) {
System.out.print(data.get(i));
System.out.print("]");
break;
}
System.out.print(data.get(i) + ",");
}
}
}
-----------------------------------------------------------------------------
package com.immunize.queue;
public class QueueTest {
public static void main(String[] args) {
MyQueue q = new MyQueue();
q.enQueue(5);
q.enQueue(4);
q.enQueue(3);
q.enQueue(2);
q.enQueue(1);
q.deQueue();
q.deQueue();
System.out.println(q.Front());
q.Print();
}
}
----------------------------------------------------------------- -----
package com.immunize.queue;
public class MyCircularQueue {
private int[] data;
private int head;
private int tail;
private int length;
public MyCircularQueue(int k) {
data = new int[k];
head = -1;
tail = -1;
length = k;
}
public boolean isFull() {
return ((tail + 1) % length == head);
}
public boolean isEmpty() {
return (head == -1);
}
public boolean enQueue(int value) {
if (isFull()) {
return false;
}
if (isEmpty()) {
head = 0;
}
tail = (tail + 1) % length;
data[tail] = value;
return true;
}
public boolean deQueue() {
if (isEmpty()) {
return false;
}
if (head == tail) {
head = -1;
tail = -1;
return true;
}
head = (head + 1) % length;
return true;
}
public int QueueHead() {
if (isEmpty() == true) {
return -1;
}
return data[head];
}
public int QueueTail() {
if (isEmpty() == true) {
return -1;
}
return data[tail];
}
public void PrintQueue() {
System.out.print("[");
for (int i = 0; i < length; i++) {
if (i == length - 1) {
System.out.print(data[i] + "]");
break;
}
System.out.print(data[i] + ",");
}
}
}
--------------------------------------------------------------------------------------------
package com.immunize.queue;
public class MyCircularQueueTest {
public static void main(String[] args) {
MyCircularQueue obj = new MyCircularQueue(5);
obj.enQueue(5);
obj.enQueue(4);
obj.enQueue(3);
obj.enQueue(2);
obj.enQueue(1);
System.out.println(obj.QueueHead());
System.out.println(obj.QueueTail());
obj.PrintQueue();
}
}
总结
用于记录及后续继续学习!