mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-07 17:56:02 +08:00
Merge pull request #290 from sahilb2/master
Added peekFront and peekBack functions
This commit is contained in:
@ -12,7 +12,7 @@ import java.util.Stack;
|
|||||||
* The elements that are added first are the first to be removed.
|
* The elements that are added first are the first to be removed.
|
||||||
* New elements are added to the back/rear of the queue.
|
* New elements are added to the back/rear of the queue.
|
||||||
*
|
*
|
||||||
* @author sahilb2
|
* @author sahilb2 (https://www.github.com/sahilb2)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class QueueWithStack {
|
class QueueWithStack {
|
||||||
@ -58,9 +58,9 @@ class QueueWithStack {
|
|||||||
/**
|
/**
|
||||||
* Peek at the element from the front of the queue
|
* Peek at the element from the front of the queue
|
||||||
*
|
*
|
||||||
* @return the new front of the queue
|
* @return the front element of the queue
|
||||||
*/
|
*/
|
||||||
public Object peek() {
|
public Object peekFront() {
|
||||||
if(this.outStack.isEmpty()) {
|
if(this.outStack.isEmpty()) {
|
||||||
// Move all elements from inStack to outStack (preserving the order)
|
// Move all elements from inStack to outStack (preserving the order)
|
||||||
while(!this.inStack.isEmpty()) {
|
while(!this.inStack.isEmpty()) {
|
||||||
@ -70,6 +70,15 @@ class QueueWithStack {
|
|||||||
return this.outStack.peek();
|
return this.outStack.peek();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Peek at the element from the back of the queue
|
||||||
|
*
|
||||||
|
* @return the back element of the queue
|
||||||
|
*/
|
||||||
|
public Object peekBack() {
|
||||||
|
return this.inStack.peek();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if the queue is empty
|
* Returns true if the queue is empty
|
||||||
*
|
*
|
||||||
@ -84,7 +93,7 @@ class QueueWithStack {
|
|||||||
/**
|
/**
|
||||||
* This class is the example for the Queue class
|
* This class is the example for the Queue class
|
||||||
*
|
*
|
||||||
* @author sahilb2
|
* @author sahilb2 (https://www.github.com/sahilb2)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class QueueUsingTwoStacks {
|
public class QueueUsingTwoStacks {
|
||||||
@ -97,41 +106,46 @@ public class QueueUsingTwoStacks {
|
|||||||
public static void main(String args[]){
|
public static void main(String args[]){
|
||||||
QueueWithStack myQueue = new QueueWithStack();
|
QueueWithStack myQueue = new QueueWithStack();
|
||||||
myQueue.insert(1);
|
myQueue.insert(1);
|
||||||
|
System.out.println(myQueue.peekBack()); //Will print 1
|
||||||
// instack: [(top) 1]
|
// instack: [(top) 1]
|
||||||
// outStack: []
|
// outStack: []
|
||||||
myQueue.insert(2);
|
myQueue.insert(2);
|
||||||
|
System.out.println(myQueue.peekBack()); //Will print 2
|
||||||
// instack: [(top) 2, 1]
|
// instack: [(top) 2, 1]
|
||||||
// outStack: []
|
// outStack: []
|
||||||
myQueue.insert(3);
|
myQueue.insert(3);
|
||||||
|
System.out.println(myQueue.peekBack()); //Will print 3
|
||||||
// instack: [(top) 3, 2, 1]
|
// instack: [(top) 3, 2, 1]
|
||||||
// outStack: []
|
// outStack: []
|
||||||
myQueue.insert(4);
|
myQueue.insert(4);
|
||||||
|
System.out.println(myQueue.peekBack()); //Will print 4
|
||||||
// instack: [(top) 4, 3, 2, 1]
|
// instack: [(top) 4, 3, 2, 1]
|
||||||
// outStack: []
|
// outStack: []
|
||||||
|
|
||||||
System.out.println(myQueue.isEmpty()); //Will print false
|
System.out.println(myQueue.isEmpty()); //Will print false
|
||||||
|
|
||||||
System.out.println(myQueue.remove()); //Will print 1
|
System.out.println(myQueue.remove()); //Will print 1
|
||||||
|
System.out.println(myQueue.peekBack()); //Will print NULL
|
||||||
// instack: []
|
// instack: []
|
||||||
// outStack: [(top) 2, 3, 4]
|
// outStack: [(top) 2, 3, 4]
|
||||||
|
|
||||||
myQueue.insert(5);
|
myQueue.insert(5);
|
||||||
System.out.println(myQueue.peek()); //Will print 2
|
System.out.println(myQueue.peekFront()); //Will print 2
|
||||||
// instack: [(top) 5]
|
// instack: [(top) 5]
|
||||||
// outStack: [(top) 2, 3, 4]
|
// outStack: [(top) 2, 3, 4]
|
||||||
|
|
||||||
myQueue.remove();
|
myQueue.remove();
|
||||||
System.out.println(myQueue.peek()); //Will print 3
|
System.out.println(myQueue.peekFront()); //Will print 3
|
||||||
// instack: [(top) 5]
|
// instack: [(top) 5]
|
||||||
// outStack: [(top) 3, 4]
|
// outStack: [(top) 3, 4]
|
||||||
myQueue.remove();
|
myQueue.remove();
|
||||||
System.out.println(myQueue.peek()); //Will print 4
|
System.out.println(myQueue.peekFront()); //Will print 4
|
||||||
// instack: [(top) 5]
|
// instack: [(top) 5]
|
||||||
// outStack: [(top) 4]
|
// outStack: [(top) 4]
|
||||||
myQueue.remove();
|
myQueue.remove();
|
||||||
// instack: [(top) 5]
|
// instack: [(top) 5]
|
||||||
// outStack: []
|
// outStack: []
|
||||||
System.out.println(myQueue.peek()); //Will print 5
|
System.out.println(myQueue.peekFront()); //Will print 5
|
||||||
// instack: []
|
// instack: []
|
||||||
// outStack: [(top) 5]
|
// outStack: [(top) 5]
|
||||||
myQueue.remove();
|
myQueue.remove();
|
||||||
|
Reference in New Issue
Block a user