Wednesday, January 5, 2011

Article | Linked List In Java

Here is a Source Code for Linked List In Java.

  1. import java.io.*;
  2. class Node
  3. {
  4. Student data;
  5. Node link;
  6. Node()
  7. {
  8. data=null;
  9. link=null;
  10. }
  11. public Node(Student data)
  12. {
  13. this.data=data;
  14. link=null;
  15. }
  16. }
  17. class LinkedList
  18. {
  19. Node head,newNode;
  20. LinkedList()
  21. {
  22. head=null;
  23. }
  24. public void initList()
  25. {
  26. head=null;
  27. }
  28. public Node createNode(Student data)
  29. {
  30. Node node = new Node(data);
  31. return node;
  32. }
  33. public int size()
  34. {
  35. int count=0;
  36. Node p;
  37. if(head==null)
  38. {
  39. return 0;
  40. }
  41. else
  42. {
  43. p=head;
  44. while(p!=null)
  45. {
  46. count++;
  47. p=p.link;
  48. }
  49. }
  50. return count;
  51. }
  52. public void beforeX(Node newNode,Node x)
  53. {
  54. Node p=head;
  55. while(p!=x.link)
  56. {
  57. p=p.link;
  58. }
  59. newNode.link=p;
  60. x.link=newNode;
  61. }
  62. public void afterX(Node newNode,Node x)
  63. {
  64. Node p=head;
  65. while(p!=x.link)
  66. {
  67. p=p.link;
  68. }
  69. newNode.link=p;
  70. x.link=newNode;
  71. }
  72. public void insertAsFirst(Node newNode)
  73. {
  74. newNode.link=head;
  75. head=newNode;
  76. }
  77. public void insertAsLast(Node newNode)
  78. {
  79. Node p = head;
  80. while(p.link!=null)
  81. p=p.link;
  82. p.link=newNode;
  83. }
  84. public void relativeToX(Node newNode,int rel,Node x)
  85. {
  86. switch(rel)
  87. {
  88. case 1 : beforeX(newNode,x);
  89. break;
  90. case 2 : afterX(newNode,x);
  91. break;
  92. default: System.out.print("\n\nInvalid Option..... Check Syntax of relativeToX()");
  93. }
  94. }
  95. public void insert(Node newNode,int pos,int reltox,Node x)
  96. {
  97. if(head==null)
  98. {
  99. head=newNode;
  100. }
  101. else
  102. {
  103. switch(pos)
  104. {
  105. case 0 : relativeToX(newNode,reltox,x);
  106. break;
  107. case 1 : insertAsFirst(newNode);
  108. break;
  109. case 2 : insertAsLast(newNode);
  110. break;
  111. }
  112. }
  113. }
  114. public Node deleteAny(Node x)
  115. {
  116. Node p=head;
  117. Node tmp;
  118. tmp=x;
  119. if(x==head)
  120. {
  121. head=x.link;
  122. return tmp;
  123. }
  124. else
  125. {
  126. while(p.link!=x)
  127. {
  128. p=p.link;
  129. }
  130. p.link=x.link;
  131. return tmp;
  132. }
  133. }
  134. public Node deleteFirst()
  135. {
  136. Node tmp;
  137. tmp=head;
  138. head=head.link;
  139. return tmp;
  140. }
  141. public Node deleteLast()
  142. {
  143. System.out.print("\n\n........Under Development.........");
  144. return null;
  145. }
  146. public Node delete(int opt,Node x)
  147. {
  148. Node p=head;
  149. Node tmp=null;
  150. if(p==null)
  151. {
  152. System.out.print("\n\n!!!!!! LIST DOES NOT EXIST !!!!!!");
  153. }
  154. else
  155. {
  156. switch(opt)
  157. {
  158. case 1 : tmp=deleteFirst();
  159. break;
  160. case 2 : tmp=deleteLast();
  161. break;
  162. case 3 : tmp=deleteAny(x);
  163. break;
  164. default: System.out.print("\n\nDelete !!-- Wrong Option");
  165. }
  166. }
  167. return tmp;
  168. }
  169. public Node search(int admno)
  170. {
  171. Node p = head;
  172. Student s=null;
  173. if(p==null)
  174. System.out.print("\n\n!!!!!! LIST DOES NOT EXIST !!!!!!");
  175. else
  176. {
  177. while(p!=null)
  178. {
  179. if(p.data.admno==admno)
  180. return p;
  181. p=p.link;
  182. }
  183. }
  184. return null;
  185. }
  186. public void display()
  187. {
  188. Node p=head;
  189. if(p==null)
  190. System.out.print("\n\n!!!!!! LIST DOES NOT EXIST !!!!!!");
  191. while(p!=null)
  192. {
  193. p.data.printData();
  194. p=p.link;
  195. }
  196. }
  197. }
  198. class Student
  199. {
  200. public int admno;
  201. private String name;
  202. Student()
  203. {
  204. this.admno=0;
  205. this.name="";
  206. }
  207. Student(int admno,String name)
  208. {
  209. this.admno=admno;
  210. this.name=name;
  211. }
  212. public int getAdmno()
  213. {
  214. return admno;
  215. }
  216. public void printData()
  217. {
  218. System.out.print("\n\nAdmission Number : "+admno);
  219. System.out.print("\n\nName : "+name);
  220. }
  221. }
  222. class MyStudentListH
  223. {
  224. public static LinkedList ll=new LinkedList();
  225. public static void deleteSubMenu()
  226. {
  227. int choice=0;
  228. while(true)
  229. {
  230. System.out.print("\n\t\t\n\n\tDELETE\n\n");
  231. System.out.print("\n\t1.FIRST\t\t:");
  232. System.out.print("\n\t2.LAST\t\t:");
  233. System.out.print("\n\t3.ANY NODE\t:");
  234. System.out.print("\n\t4.MAIN MENU\t:");
  235. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  236. try
  237. {
  238. System.out.print("\n\nEnter Your Choice : ");
  239. choice=Integer.parseInt(br.readLine());
  240. }
  241. catch(Exception ex)
  242. {
  243. System.out.print("\nInput - Output Error !!!");
  244. System.exit(1);
  245. }
  246. switch(choice)
  247. {
  248. case 1 : ll.delete(1,null);
  249. break;
  250. case 2 : ll.delete(2,null);
  251. break;
  252. case 3 : Node tmp=search();
  253. if(tmp!=null)
  254. {
  255. ll.delete(3,tmp);
  256. }
  257. break;
  258. case 4 : menu();
  259. break;
  260. default: System.out.print("\n\nInvalid Menu Option !!!!!!!!!");
  261. }
  262. }
  263. }
  264. public static void insertSubMenu()
  265. {
  266. int choice=0;
  267. Student s=null;
  268. Node newNode=null;
  269. Node tmp;
  270. while(true)
  271. {
  272. System.out.print("\n\t\t\n\n\tINSERT\n\n");
  273. System.out.print("\n\t1.FIRST\t\t:");
  274. System.out.print("\n\t2.LAST\t\t:");
  275. System.out.print("\n\t3.BEFORE NODE X\t:");
  276. System.out.print("\n\t4.AFTER NODE X\t:");
  277. System.out.print("\n\t5.MAIN MENU\t:");
  278. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  279. try
  280. {
  281. System.out.print("\n\nEnter Your Choice : ");
  282. choice=Integer.parseInt(br.readLine());
  283. if(choice!=5)
  284. {
  285. System.out.print("\n\n---Data to new Record-----");
  286. System.out.print("\n\nEnter The Admission Number : ");
  287. int admno=Integer.parseInt(br.readLine());
  288. System.out.print("\n\nEnter Name : ");
  289. String name = br.readLine();
  290. s=new Student(admno,name);
  291. newNode=ll.createNode(s);
  292. }
  293. }
  294. catch(Exception ex)
  295. {
  296. System.out.print("\nInput - Output Error !!!");
  297. System.exit(1);
  298. }
  299. switch(choice)
  300. {
  301. case 1 : System.out.print("\n\nInsert as First Node ");
  302. ll.insert(newNode,1,0,null);
  303. break;
  304. case 2 : System.out.print("\n\nInsert as Last Node ");
  305. ll.insert(newNode,2,0,null);
  306. break;
  307. case 3 : System.out.print("\n\nInsert before Node X ");
  308. tmp=search();
  309. if(tmp!=null)
  310. {
  311. ll.insert(newNode,0,1,tmp);
  312. }
  313. break;
  314. case 4 : System.out.print("\n\nInsert after Node X ");
  315. tmp=search();
  316. if(tmp!=null)
  317. {
  318. ll.insert(newNode,0,2,tmp);
  319. }
  320. break;
  321. case 5 : System.out.print("\n\nTo Main Menu ");
  322. menu();
  323. break;
  324. default: System.out.print("\n\nInvalid menu option !!!!!");
  325. }
  326. }
  327. }
  328. public static Node search()
  329. {
  330. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  331. int admno=0;
  332. Node res;
  333. try
  334. {
  335. System.out.print("\n\n----Search Data-----");
  336. System.out.print("\n\nEnter Admission number : ");
  337. admno=Integer.parseInt(br.readLine());
  338. }
  339. catch(Exception ex)
  340. {
  341. System.out.print("\nInput - Output Error !!!");
  342. System.exit(1);
  343. }
  344. res=ll.search(admno);
  345. if(res==null)
  346. {
  347. System.out.print("\n\n--->Student Record Not Found");
  348. }
  349. else
  350. {
  351. System.out.print("\n\n--->Student Record Found");
  352. res.data.printData();
  353. }
  354. return res;
  355. }
  356. public static void menu()
  357. {
  358. int choice=0;
  359. while(true)
  360. {
  361. System.out.print("\n\t\t\n\n\tLINKED LIST\n");
  362. System.out.print("\n\t1.INSERT\t:");
  363. System.out.print("\n\t2.DELETE\t:");
  364. System.out.print("\n\t3.DISPLAY\t:");
  365. System.out.print("\n\t4.SEARCH\t:");
  366. System.out.print("\n\t5.INITIALIZE\t:");
  367. System.out.print("\n\t6.SIZE\t\t:");
  368. System.out.print("\n\t7.EXIT\t\t:");
  369. BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  370. try
  371. {
  372. System.out.print("\n\nEnter Yor Choice : ");
  373. choice=Integer.parseInt(br.readLine());
  374. }
  375. catch(Exception ex)
  376. {
  377. System.out.print("\nInput - Output Error !!!");
  378. System.exit(1);
  379. }
  380. switch(choice)
  381. {
  382. case 1 : insertSubMenu();
  383. break;
  384. case 2 : deleteSubMenu();
  385. break;
  386. case 3 : ll.display();
  387. break;
  388. case 4 : Node tmp=search();
  389. break;
  390. case 5 : ll.initList();
  391. System.out.print("\n\nList is Initialized");
  392. break;
  393. case 6 : System.out.print("\n\nNumber of items in the List : "+ll.size());
  394. break;
  395. case 7 : System.out.print("\nGOOD BYE.....\n\n");
  396. System.exit(1);
  397. default: System.out.print("\n\nInvalid menu Option !!!!!");
  398. }
  399. }
  400. }
  401. public static void main(String[] arg)
  402. {
  403. int n,i;
  404. String name;
  405. menu();
  406. }
  407. }
Loading...

Comments :

0 comments to “ Linked List In Java ”

Subscribe

Enter your email address:

Followers

Chicklets

My Zimbio