/*
File name : LL.java
Date : 27 March 2013
Author : Shivam Tiwari
Organization : http://mycodedock.blogspot.in/
Description : Implementing Dynamic Linked List in java by importing java.util.LinkedList
*/
import java.util.LinkedList;
import java.util.Scanner;
//defining a custom data-type (class)
class LLObj{
int NodeInt;
char NodeChar;
LLObj(int x, char y){
NodeInt = x;
NodeChar = y;
}
}
//main class
public class Main{
static int ChosenOption, TempInt, NodeCounter, TempCounter;
static char TempChar;
//creating scanner object
static Scanner ScannerObj
= new Scanner
(System.
in);
//creating a link list
static LinkedList<LLObj> list = new LinkedList<>();
//main function
public static void main
(String[] args
){
NodeCounter = 0;
//driving menu
for(;;){
System.
out.
println("Enter 1 to add a node to linked list"); System.
out.
println("Enter 2 to print the current list"); System.
out.
println("Enter 3 to quit the program"); ChosenOption = ScannerObj.nextInt();
if(ChosenOption == 1){
AddNew();
}
else if(ChosenOption == 2){
PrintList();
}
else if(ChosenOption == 3){
return;
}
else{
System.
out.
println("Wrong Input. Try again!"); }
}
}
//AddNew function
public static void AddNew(){
//getting input
System.
out.
println("Enter integer"); TempInt = ScannerObj.nextInt();
System.
out.
println("Enter character"); TempChar = ScannerObj.next().charAt(0);
//adding node to the list
list.addLast(new LLObj(TempInt,TempChar));
//Increment Node Counter
NodeCounter++;
}
public static void PrintList(){
TempCounter = 0;
while(TempCounter < NodeCounter){
System.
out.
println(list.
get(TempCounter
).
NodeInt); System.
out.
println(list.
get(TempCounter
).
NodeChar); TempCounter++;
}
}
}