Advertisement
Guest User

Untitled

a guest
Apr 27th, 2015
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.12 KB | None | 0 0
  1. package opgave2;
  2.  
  3. public class DoubleSortedLinkedList {
  4.  
  5.     private Node first;
  6.     private Node last;
  7.  
  8.     public DoubleSortedLinkedList() {
  9.         first = new Node(null);
  10.         last = new Node(null);
  11.         first.next = last;
  12.         last.previous = first;
  13.     }
  14.  
  15.     /**
  16.      * Tilføjer e til listen, så listen fortsat er sorteret i henhold til den
  17.      * naturlige ordning på elementerne
  18.      */
  19.     public void addElement(String e) {
  20.         Node ny = new Node(e);
  21.         Node temp = first;
  22.         boolean found = false;
  23.  
  24.         while (temp.next != last && !found) {
  25.             if (temp.next.data.compareTo(e) > 0) {
  26.                 found = true;
  27.             } else {
  28.                 temp = temp.next;
  29.             }
  30.         }
  31.         if (found) {
  32.             ny.next = temp.next;
  33.             ny.previous = temp;
  34.             temp.next = ny;
  35.             ny.next.previous = ny;
  36.         } else {
  37.             temp.next = ny;
  38.             ny.next = last;
  39.             ny.previous = temp;
  40.             last.previous = ny;
  41.         }
  42.  
  43.     }
  44.  
  45.     /**
  46.      * Fjerner den første forekomst af e i listen. Listen skal fortsat være
  47.      * sorteret i henhold til den naturlige ordning på elementerne.
  48.      *
  49.      * @return true hvis e blev fjernet fra listen ellers returneres false.
  50.      */
  51.     public boolean deleteElement(String e) {
  52.         boolean found = false;
  53.         Node temp = first;
  54.  
  55.         while (!found && temp.next.data != last.data) {
  56.             if (temp.next.data.equals(e)) {
  57.                 found = true;
  58.             } else {
  59.                 temp = temp.next;
  60.             }
  61.  
  62.         }
  63.         if (found) {
  64.             Node temp2 = temp.next;
  65.             temp.next = temp2.next;
  66.             temp2.next.previous = temp2.previous;
  67.         }
  68.  
  69.         return found;
  70.     }
  71.  
  72.     /**
  73.      * Udskriver elementerne fra listen i sorteret rækkefølge
  74.      */
  75.     public void udskrivElements() {
  76.         Node temp = first;
  77.         while (temp != null) {
  78.             if (temp.data == null) {
  79.                 temp = temp.next;
  80.             } else {
  81.                 System.out.println(temp.data);
  82.                 temp = temp.next;
  83.             }
  84.         }
  85.  
  86.     }
  87.  
  88.     /**
  89.      * Returnerer antallet af elementer i listen
  90.      */
  91.     public int countElements() {
  92.         int count = 0;
  93.         Node temp = first;
  94.         while (temp != null) {
  95.             count++;
  96.             temp = temp.next;
  97.         }
  98.         return count;
  99.     }
  100.  
  101.     public class Node {
  102.         private Node next;
  103.         private String data;
  104.         private Node previous;
  105.  
  106.         public Node(String data) {
  107.             this.data = data;
  108.         }
  109.     }
  110.  
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement