-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLinkedQueue.java
More file actions
90 lines (75 loc) · 2.09 KB
/
LinkedQueue.java
File metadata and controls
90 lines (75 loc) · 2.09 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//package processManagement;
public class LinkedQueue<T> implements Queue <T> {
private Node<T> front; // Apunta al primer elemento de la lista.
private Node<T> rear; // Apunta al ultimo elemento de la lista.
private int count;
public LinkedQueue() {
count = 0;
front = null;
rear = null;
}
// Añade un elemento a la cola
public void enqueue(T element) {
Node<T> node = new Node<T>(element);
if (isEmpty())
front = node;
else
rear.setNext(node); //rear es la se va ir moviendo
rear = node;
count++;
}
// Elimina y devuelve un elemento de la cola
public T dequeue() throws EmptyCollectionException{
if( isEmpty()){
throw new EmptyCollectionException("La cola se encuentra vacia, no puede sacar mas");
}
T result = front.getElement();
front = front.getNext(); // Devueleve null si solo hay un elemento.
count--;
// Si lo hay un elmento al devolver, inicializamos la referencia
if (isEmpty()) {
rear = null;
}
return result;
}
// Devuelve sin eliminarlo el elemento situado a al cola
public T first() {
//@refernce https://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java
// https://www.arquitecturajava.com/java-clone-un-concepto-importante/
// https://www.geeksforgeeks.org/clone-method-in-java-2/
return front.getElement();
}
// Devuelve si esta vacia
public boolean isEmpty() {
return count == 0;
}
// Devuelve el tamanño de la cola
public int size() {
return count;
}
// // Devuelve una representacion de la cola
// public String toString() {
// int i = count;
// Node<T> iterador = front;
// String aux = "";
// while( i > 0) {
// aux += "| " + iterador.getElement() + " | ";
// iterador = iterador.getNext();
// i--;
// }
// return aux;
// }
// Devuelve una representacion de la cola
public String toString() {
int i = count;
Node<T> iterador = front;
String elem = "", frente="";
while( i > 0) {
elem = "| " + iterador.getElement() + " | ";
frente = elem + frente;
iterador = iterador.getNext();
i--;
}
return frente;
}
}