Loading subject…
All four operations touch only an end of the queue, so all four run in O(1) time in a well-implemented queue.
| Operation | Value returned | Contents, front to rear | Front | Rear |
|---|---|---|---|---|
| start | none | (empty) | none | none |
| enqueue(A) | none | A | A | A |
| enqueue(B) | none | A, B | A | B |
| enqueue(C) | none | A, B, C | A | C |
| dequeue() | A | B, C | B | C |
| front() | B | B, C | B | C |
| enqueue(D) | none | B, C, D | B | D |
| dequeue() | B | C, D | C | D |
Python, using a list as a queue:
Java, using the Queue interface:
Python:
Java, the same algorithm:
queue = []
queue.append("A") # enqueue(A)queue.append("B") # enqueue(B)
first = queue[0] # front -> "A", queue unchanged
if len(queue) > 0: # isEmpty check item = queue.pop(0) # dequeue -> "A", queue is now ['B'] print(item)import java.util.LinkedList;import java.util.Queue;
Queue<String> q = new LinkedList<>();
q.add("A"); // enqueue(A)q.add("B"); // enqueue(B)
String first = q.peek(); // front -> "A", queue unchanged
if (!q.isEmpty()) { // isEmpty check String item = q.remove(); // dequeue -> "A", queue is now [B] System.out.println(item);}CAPACITY = 5queue = [None] * CAPACITYfront = 0rear = -1count = 0
# enqueue("A")if count < CAPACITY: rear = (rear + 1) % CAPACITY queue[rear] = "A" count = count + 1else: print("queue overflow")
# dequeue()if count > 0: item = queue[front] front = (front + 1) % CAPACITY count = count - 1 print(item)else: print("queue underflow")final int CAPACITY = 5;String[] queue = new String[CAPACITY];int front = 0;int rear = -1;int count = 0;
// enqueue("A")if (count < CAPACITY) { rear = (rear + 1) % CAPACITY; queue[rear] = "A"; count = count + 1;} else { System.out.println("queue overflow");}
// dequeue()if (count > 0) { String item = queue[front]; front = (front + 1) % CAPACITY; count = count - 1; System.out.println(item);} else { System.out.println("queue underflow");}