Write a program that demonstrate the use of Single Double Ended Link List / Singly Double Ended Link List
2. Delete in the List
3. Traverse in the List
Link List Class:
1. Insert in the List2. Delete in the List
3. Traverse in the List
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | public class Double_Ended_Single_Link_List { Node header; Node tail; public Double_Ended_Single_Link_List() {// constructor header = null; } public Node getHeader() { return header; } public Node getTail() { return tail; } public void insert_at_Beginning(int data) { Node newNode = new Node(data); if (header == null) { header = newNode; tail = newNode; } else { newNode.setNext(header); header = newNode; } } public void insert_at_Position(int data, int pos) { Node newNode = new Node(data); Node temp = header; pos--; while (pos > 0) { temp = temp.getNext(); if (temp == null) { System.out.println("Not enough elements in the list."); } else { --pos; } } newNode.setNext(temp.getNext()); temp.setNext(newNode); } public void insert_at_End(int data) { Node newNode = new Node(data); Node temp = header; if (header == null) { header = newNode; tail = newNode; } else { while (temp.getNext() != null) { temp = temp.getNext(); } tail.setNext(newNode); tail = newNode; } } public int delete_from_Beginning() { if (isEmpty()) { System.out.println("Error: Invalid operation! List is Empty"); return -1; } else if (header.getNext() == null) { header = null; tail = null; return 0; } else { header = header.getNext(); return 0; } } public void delete_from_position(int pos) { if (isEmpty()) { System.out.println("Error: Invalid operation! List is Empty"); } else { Node temp = header; pos--; while (--pos != 0) { temp = temp.getNext(); } temp.setNext(temp.getNext().getNext()); } } public void delete_from_End() { Node temp = header.getNext(); Node prev = header; if (header == null) { System.out.println("Error: Invalid operation! List is Empty"); } else { while (temp.getNext() != null) { temp = temp.getNext(); prev = prev.getNext(); } prev.setNext(null); temp = null; } } public void traverse() { Node temp = header; while (temp != null) { System.out.print(temp.getData() + " "); temp = temp.getNext(); } } public boolean isEmpty() { return header == null; }} |
Test Class:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | public class DE_SLL_Test_Class { public static void main(String[] args) { Double_Ended_Single_Link_List ll = new Double_Ended_Single_Link_List(); System.out.println("Insert At Begining!"); ll.insert_at_Beginning(23); ll.insert_at_Beginning(56); ll.traverse(); System.out.println(""); System.out.println("\nInsert At End!"); ll.insert_at_End(100); ll.insert_at_End(123); ll.traverse(); System.out.println(""); System.out.println("\nInsert At any Position!"); ll.insert_at_Position(321, 3); ll.insert_at_Position(4444, 4); ll.traverse(); System.out.println(""); System.out.println("\nDelete At Begining!"); ll.delete_from_Beginning(); ll.traverse(); System.out.println(""); System.out.println("\nDelete At Postion!"); ll.delete_from_position(3); ll.traverse(); System.out.println(""); System.out.println("\nDelete At End!"); ll.delete_from_End(); ll.traverse(); System.out.println(""); } } |
No comments:
Post a Comment