code_junkie

How do I implement a Linked List in Java?

Nov 10th, 2011
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. class Link {
  2. public int data1;
  3. public double data2;
  4. public Link nextLink;
  5.  
  6. //Link constructor
  7. public Link(int d1, double d2) {
  8. data1 = d1;
  9. data2 = d2;
  10. }
  11.  
  12. //Print Link data
  13. public void printLink() {
  14. System.out.print("{" + data1 + ", " + data2 + "} ");
  15. }
  16. }
  17.  
  18. class LinkList {
  19. private Link first;
  20.  
  21. //LinkList constructor
  22. public LinkList() {
  23. first = null;
  24. }
  25.  
  26. //Returns true if list is empty
  27. public boolean isEmpty() {
  28. return first == null;
  29. }
  30.  
  31. //Inserts a new Link at the first of the list
  32. public void insert(int d1, double d2) {
  33. Link link = new Link(d1, d2);
  34. link.nextLink = first;
  35. first = link;
  36. }
  37.  
  38. //Deletes the link at the first of the list
  39. public Link delete() {
  40. Link temp = first;
  41. first = first.nextLink;
  42. return temp;
  43. }
  44.  
  45. //Prints list data
  46. public void printList() {
  47. Link currentLink = first;
  48. System.out.print("List: ");
  49. while(currentLink != null) {
  50. currentLink.printLink();
  51. currentLink = currentLink.nextLink;
  52. }
  53. System.out.println("");
  54. }
  55. }
  56.  
  57. class LinkListTest {
  58. public static void main(String[] args) {
  59. LinkList list = new LinkList();
  60.  
  61. list.insert(1, 1.01);
  62. list.insert(2, 2.02);
  63. list.insert(3, 3.03);
  64. list.insert(4, 4.04);
  65. list.insert(5, 5.05);
  66.  
  67. list.printList();
  68.  
  69. while(!list.isEmpty()) {
  70. Link deletedLink = list.delete();
  71. System.out.print("deleted: ");
  72. deletedLink.printLink();
  73. System.out.println("");
  74. }
  75. list.printList();
  76. }
  77. }
  78.  
  79. list = new java.util.LinkedList()
  80.  
  81. public void insert(int d1, double d2) {
  82. Link link = new Link(d1, d2);
  83.  
  84. if(first==null){
  85. link.nextLink = null;
  86. first = link;
  87. last=link;
  88. }
  89. else{
  90. last.nextLink=link;
  91. link.nextLink=null;
  92. last=link;
  93. }
  94. }
  95.  
  96. //slightly improved code without using collection framework
  97.  
  98. package com.test;
  99.  
  100. public class TestClass {
  101.  
  102. private static Link last;
  103. private static Link first;
  104.  
  105. public static void main(String[] args) {
  106.  
  107. //Inserting
  108. for(int i=0;i<5;i++){
  109. Link.insert(i+5);
  110. }
  111. Link.printList();
  112.  
  113. //Deleting
  114. Link.deletefromFirst();
  115. Link.printList();
  116. }
  117.  
  118.  
  119. protected static class Link {
  120. private int data;
  121. private Link nextlink;
  122.  
  123. public Link(int d1) {
  124. this.data = d1;
  125. }
  126.  
  127. public static void insert(int d1) {
  128. Link a = new Link(d1);
  129. a.nextlink = null;
  130. if (first != null) {
  131. last.nextlink = a;
  132. last = a;
  133. } else {
  134. first = a;
  135. last = a;
  136. }
  137. System.out.println("Inserted -:"+d1);
  138. }
  139.  
  140. public static void deletefromFirst() {
  141. if(null!=first)
  142. {
  143. System.out.println("Deleting -:"+first.data);
  144. first = first.nextlink;
  145. }
  146. else{
  147. System.out.println("No elements in Linked List");
  148. }
  149. }
  150.  
  151. public static void printList() {
  152. System.out.println("Elements in the list are");
  153. System.out.println("-------------------------");
  154. Link temp = first;
  155. while (temp != null) {
  156. System.out.println(temp.data);
  157. temp = temp.nextlink;
  158. }
  159. }
  160. }
  161. }
Add Comment
Please, Sign In to add comment