Learn-dsa..in 30 days!



























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 !