I/P:
addLast 10 getFirst addLast 20 addLast 30 getFirst getLast getAt 1 addLast 40 getLast addLast 50 removeFirst getFirst removeFirst removeFirst getAt 3 removeFirst removeFirst getFirst quit
O/P:
10 10 30 20 40 20 Invalid arguments List is empty
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Get_Value_In_LinkedList {
public static class Node {
int data;
Node next;
}
public static class LinkedList {
Node head;
Node tail;
int size;
void addLast(int val) {
Node temp = new Node();
temp.data = val;
temp.next = null;
if (size == 0) {
head = tail = temp;
} else {
tail.next = temp;
tail = temp;
}
size++;
}
public int size() {
return size;
}
public void display() {
for (Node temp = head; temp != null; temp = temp.next) {
System.out.print(temp.data + " ");
}
System.out.println();
}
public void removeFirst() {
if (size == 0) {
System.out.println("List is empty");
} else if (size == 1) {
head = tail = null;
size = 0;
} else {
head = head.next;
size--;
}
}
// write your code here
public int getFirst() {
if (head == null) {
System.out.println("List is empty");
return -1;
} else
return head.data;
}
// write your code here
public int getLast() {
if (tail == null)
return -1;
else
return tail.data;
}
// write your code here
public int getAt(int idx) {
if (size == 0) {
System.out.println("List is empty");
return -1;
} else if (idx < 0 || idx >= size) {
System.out.println("Invalid argument");
return -1;
} else {
Node temp = head;
int i = 0;
while (i < idx) {
temp = temp.next;
i++;
}
return temp.data;
}
}
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
LinkedList list = new LinkedList();
String str = br.readLine();
while (str.equals("quit") == false) {
if (str.startsWith("addLast")) {
int val = Integer.parseInt(str.split(" ")[1]);
list.addLast(val);
} else if (str.startsWith("size")) {
System.out.println(list.size());
} else if (str.startsWith("display")) {
list.display();
} else if (str.startsWith("removeFirst")) {
list.removeFirst();
} else if (str.startsWith("getFirst")) {
int val = list.getFirst();
if (val != -1) {
System.out.println(val);
}
} else if (str.startsWith("getLast")) {
int val = list.getLast();
if (val != -1) {
System.out.println(val);
}
} else if (str.startsWith("getAt")) {
int idx = Integer.parseInt(str.split(" ")[1]);
int val = list.getAt(idx);
if (val != -1) {
System.out.println(val);
}
}
str = br.readLine();
}
}
}
No comments:
Post a Comment