Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. public void readToList(){
  2. Scanner scan = new Scanner(System.in);
  3. System.out.println("Please enter numbers to add to List. To stop, enter -9999");
  4.  
  5. int newInt = scan.nextInt();
  6.  
  7. while(newInt != -9999){
  8. pushNumber(newInt);
  9. newInt = scan.nextInt();
  10. }
  11. System.out.println("Done");
  12.  
  13. mergeSort();
  14.  
  15. IntNodeTwo pointer, prev = null;
  16.  
  17. for(pointer=this._head; pointer !=null; pointer = pointer.getNext()){
  18. pointer.setPrev(prev);
  19. prev = pointer;
  20. }
  21. this._tail = prev;
  22. }
  23.  
  24. private void mergeSort() {
  25. _head = mergeSort (_head);
  26. }
  27.  
  28. private IntNodeTwo mergeSort (IntNodeTwo node) {
  29.  
  30. if (node == null || node.getNext() == null)
  31. return node;
  32.  
  33. IntNodeTwo list2 = split(node);
  34. node = mergeSort (node);
  35. list2 = mergeSort(list2);
  36.  
  37. return merge(node, list2);
  38. }
  39.  
  40. private IntNodeTwo split(IntNodeTwo node) {
  41. if (node == null || node.getNext() == null)
  42. return null;
  43.  
  44. IntNodeTwo list2 = node.getNext();
  45. node.setNext (list2.getNext());
  46. list2.setNext (split(list2.getNext()));
  47. return list2;
  48.  
  49. }
  50.  
  51. private IntNodeTwo merge(IntNodeTwo list1, IntNodeTwo list2) {
  52.  
  53. if (list1 == null)
  54. return list2;
  55. if (list2 == null)
  56. return list1;
  57.  
  58. if (list1.getNum() < list2.getNum()) {
  59. list1.setNext(merge(list1.getNext(), list2));
  60. return list1;
  61. }
  62.  
  63. else {
  64. list2.setNext(merge(list1, list2.getNext()));
  65. return list2;
  66. }
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement