CC-12 : Remove element from Queue and preserve order of rest of elements of Queue.
Description:
Given a Queue, remove requested element from it and preserve order of rest of elements of the Queue.
Test cases and expected outputs:
| Input Parameters | Expected outputs |
|---|---|
| Queue< Integer > queue=new LinkedList< Integer >(); System.out.println("Add to Queue:"); queue.add(9); queue.add(14); queue.add(17); queue.add(34); queue.add(21); queue.add(28); queue.add(21); printQueue(queue); QueueRemoveElement queueRemoveElement =new QueueRemoveElement(); System.out.println("Remove: 17"); queueRemoveElement. queueRemoveElement(queue,17); printQueue(queue); System.out.println("Remove: 21"); queueRemoveElement. queueRemoveElement(queue,21); |
Add to Queue: Queue nodes: 9 <- 14 <- 17 <- 34 <- 21 <- 28 <- 21 <- Remove: 17 Queue nodes: 9 <- 14 <- 34 <- 21 <- 28 <- 21 <- Remove: 21 Queue nodes: 9 <- 14 <- 34 <- 28 <- |
Pseudocode:
| Using a for loop iterate through all elements of input Queue:
If current nodes data == element to be removed, then remove it from the Queue.
If current nodes data != element to be removed, then remove it from the start of Queue and add it to end of Queue.
|
Code:
public Queue< Integer > queueRemoveElement(Queue< Integer > queue, int toRemove) {
int curr=0; int qSize=queue.size();
for (int idx=0;idx < qSize ; idx++) {
curr=queue.remove();
if (curr != toRemove) {
queue.add(curr);
}
}
return queue;
}
Click here to download and run code and test cases !
| About Us | Privacy Policy | Contact us |