Video

Latest

Real Interview - 1. Insert after 3rd node in linked list, 2. Implement queue using array


 Insert After 3rd node in Linked List

Given a linked list

given a element. Insert after 3rd node in the list.

 

Example 1:

Input: 4
1 2 3 4
35
Output: 1->2->3->35->4->

Approach -

import java.util.*;
import java.lang.*;
import java.io.*;

class Node {
	int val; 
	Node next;
	Node() {}
	Node(int val) {
		this.val = val;
		this.next = null;
	}
}

class Codechef {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] elements = new int[n];
		Node prev = new Node(sc.nextInt());
		Node head = prev;
		for(int i=1; i<n-1; i++) {
			Node curr = new Node(sc.nextInt());
			prev.next = curr;
			prev = prev.next;
		}
		Node curr = new Node(sc.nextInt());
		prev.next = curr;
		prev = prev.next;
		prev.next = null;

		// display
		
		Node temp = head;
		while(temp!=null) {
			System.out.print(temp.val+"->");
			temp = temp.next;
		}
		System.out.println();

		// insert after 3rd node
		
		temp = head;
		int count = 0;
		while(temp!=null && count++<2) {
			temp = temp.next;
		}
		Node node = new Node(sc.nextInt());
		Node store = temp.next;
		temp.next = node;
		node.next = store;

		// after insert
		
		temp = head;
		while(temp!=null) {
			System.out.print(temp.val+"->");
			temp = temp.next;
		}
	}

}

------------------X--------------------

 Queue using array

Given a nothing

Implement queue using array

 

Example 1:

Input: 4
1
1
1
2
1
3
1
4
3
2
2
3
5
4
Output: 1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Value inserted

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Value inserted

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Value inserted

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Value inserted

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

1
2
3
4

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Deleted -> 1

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Deleted -> 2

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

3
4

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Wrong Input

1. Enqueue 
2. Dequeue 
3. Print 
4. Exit

Approach -


import java.util.*;
import java.lang.*;
import java.io.*;

class Codechef {
	
	static int front = 0;
	static int rear = -1;
	static int size = 0;
	static int[] queue = new int[101];

	public static void insertAtRear(int val) {
		if(rear>=size-1) {
			System.out.println("Queue is full");
		}
		else {
			rear++;
			queue[rear] = val;
			System.out.println("Value inserted");
		}
	}

	public static int deleteFromFront() {
		if(front>rear) {
			System.out.println("Queue is empty");
		}
		else {
			int deleted = queue[front];
			front++;
			return deleted;
		}
		return 0;
	}

	public static void printQueue() {
		if(front<=rear && rear<size)
			for(int i=front; i<=rear; i++) {
				System.out.println(queue[i]);
			}
		else 
			System.out.println("NO PRINT");
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		size = n;
		
		while(true) {
			System.out.println("\n1. Enqueue \n2. Dequeue \n3. Print \n4. Exit\n");
			int choice = sc.nextInt();
			switch(choice) {
				case 1: insertAtRear(sc.nextInt()); break;
				case 2: int deleted = deleteFromFront(); System.out.println("Deleted -> "+deleted); break;
				case 3: printQueue(); break;
				case 4:	System.exit(1);
				case 5: System.out.println("Wrong Input");
			}
		}
	}
}

------------------X--------------------

No comments