栈:

栈(Stack)是一个后进先出(Last in first out LIFO)的线性表,要求只在表尾进行删除和插入操作了,栈的插入叫做进栈(进栈、压栈、入栈)、栈的删除叫出栈。

队列:

队列(queue)是只允许在一端进行插入操作,而另一端进行删除操作的一种先进先出(First in First out FIFo)的线性表
1.循环队列:

循环队列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class CircleQueue<E> {
private Object q[];
private int head = 0;
private int tail = 0;
private int size;

public CircleQueue(int size) {
this.size = size;
q = new Object[size];
}

public CircleQueue() {
this(10);
}

public boolean inQueue(E e) {
//表示队列已经满了
if ((tail+1) % size == head) return false;
q[tail] = e;
tail = (tail + 1) % size;
return true;
}

public E outQueue() {
if (head == tail) return null;
E o = (E) q[head];
head = (head + 1) % size;
return o;
}
}