Advertisement
Guest User

Untitled

a guest
Oct 21st, 2011
1,074
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. class Node
  2. {
  3. public int item;
  4. public Node next;
  5. public Node(int val)
  6. {
  7. item = val;
  8. }
  9. public Node()
  10. {}
  11. public void displayNode()
  12. {
  13. System.out.println("[" + item + "] ");
  14. }
  15. }
  16. class LinkedList
  17. {
  18. private Node first;
  19. public LinkedList()
  20. {
  21. first = null;
  22. }
  23. public boolean isEmpty()
  24. {
  25. return (first==null);
  26. }
  27. public void insert(int val)//inserts at beginning of list
  28. {
  29. Node newNode = new Node(val);
  30. newNode.next = first;
  31. first = newNode;
  32. }
  33. public void append(Node result)
  34. {
  35. first = result;
  36. }
  37. public void display()
  38. {
  39. System.out.println("List items from first to last :");
  40. Node current = first;
  41. while(current != null)
  42. {
  43. current.displayNode();
  44. current = current.next;
  45. }
  46. System.out.println("");
  47. }
  48. public Node extractFirst()
  49. {
  50. return first;
  51. }
  52. public Node MergeSort(Node headOriginal)
  53. {
  54. if (headOriginal == null || headOriginal.next == null)
  55. return headOriginal;
  56. Node a = headOriginal;
  57. Node b = headOriginal.next;
  58. while ((b != null) && (b.next != null))
  59. {
  60. headOriginal = headOriginal.next;
  61. b = (b.next).next;
  62. }
  63. b = headOriginal.next;
  64. headOriginal.next = null;
  65. return merge(MergeSort(a), MergeSort(b));
  66.  
  67. }
  68.  
  69. public Node merge(Node a, Node b)
  70. {
  71. Node temp = new Node();
  72. Node head = temp;
  73. Node c = head;
  74. while ((a != null) && (b != null))
  75. {
  76. if (a.item <= b.item)
  77. {
  78. c.next = a;
  79. c = a;
  80. a = a.next;
  81. }
  82. else
  83. {
  84. c.next = b;
  85. c = b;
  86. b = b.next;
  87. }
  88. }
  89. c.next = (a == null) ? b : a;
  90. return head.next;
  91. }
  92. }
  93. class LinkedListBlog
  94. {
  95. public static void main(String[] args)
  96. {
  97. LinkedList object = new LinkedList();
  98. object.insert(30);
  99. object.insert(10);
  100. object.insert(50);
  101. object.insert(20);
  102. object.insert(5);
  103. object.insert(8);
  104. object.display();
  105. System.out.println("The list after merge sort O(nlog(n))");
  106. object.append(object.MergeSort(object.extractFirst()));
  107. object.display();
  108. }
  109. }
  110.  
  111.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement