-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMyQueue.java
More file actions
56 lines (47 loc) · 1.01 KB
/
MyQueue.java
File metadata and controls
56 lines (47 loc) · 1.01 KB
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package traintransfer;
/*继承这个抽象类,重写所有抽象方法*/
public class MyQueue<T> {
protected LinkedNode<T> first = null;
protected LinkedNode<T> last = null;
protected int size = 0;
/* 返回队列的元素个数 */
int getSize() {
return size;
}
/* 判断队列是否为空,是返回true */
boolean isEmpty() {
return size == 0;
}
/* 访问(但不删除)队列的第一个元素,并返回 */
T front() {
if(isEmpty())return null;
return first.t;
}
/* 删除队列的第一个元素,如果队列为空,返回false */
boolean pop() {
if (isEmpty())
return false;
first = first.next;
size--;
return true;
}
/* 在队列的最后添加一个元素element,如果添加成功,返回true */
boolean push(T element) {
LinkedNode<T> tmp = new LinkedNode<T>(element);
if (isEmpty()) {
first = last = tmp;
} else {
last.next = tmp;
last=tmp;
}
size++;
return true;
}
private class LinkedNode<E> {
LinkedNode<E> next = null;
E t;
LinkedNode(E element) {
t = element;
}
}
}