Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void readToList(){
- Scanner scan = new Scanner(System.in);
- System.out.println("Please enter numbers to add to List. To stop, enter -9999");
- int newInt = scan.nextInt();
- while(newInt != -9999){
- pushNumber(newInt);
- newInt = scan.nextInt();
- }
- System.out.println("Done");
- mergeSort();
- IntNodeTwo pointer, prev = null;
- for(pointer=this._head; pointer !=null; pointer = pointer.getNext()){
- pointer.setPrev(prev);
- prev = pointer;
- }
- this._tail = prev;
- }
- private void mergeSort() {
- _head = mergeSort (_head);
- }
- private IntNodeTwo mergeSort (IntNodeTwo node) {
- if (node == null || node.getNext() == null)
- return node;
- IntNodeTwo list2 = split(node);
- node = mergeSort (node);
- list2 = mergeSort(list2);
- return merge(node, list2);
- }
- private IntNodeTwo split(IntNodeTwo node) {
- if (node == null || node.getNext() == null)
- return null;
- IntNodeTwo list2 = node.getNext();
- node.setNext (list2.getNext());
- list2.setNext (split(list2.getNext()));
- return list2;
- }
- private IntNodeTwo merge(IntNodeTwo list1, IntNodeTwo list2) {
- if (list1 == null)
- return list2;
- if (list2 == null)
- return list1;
- if (list1.getNum() < list2.getNum()) {
- list1.setNext(merge(list1.getNext(), list2));
- return list1;
- }
- else {
- list2.setNext(merge(list1, list2.getNext()));
- return list2;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement