Sortierte Listen

Adriano10

Bekanntes Mitglied
Also, dass funkioniert nur dann, wenn ich einstellige Ziffer eingebe, aber wenn ich zweistellige Ziffer eingebe, dann klappt es leider nicht, Wenn jemand mir Hinweise geben könnte, würde mir sehr geholfen
public void add(int value) {
LinkedListElement newValue = new LinkedListElement();
newValue.setValue(value);
if(start == null) {
start = newValue;
current = newValue;
}else if(newValue.getValue() <= start.getValue()) {
newValue.setNext(start);
start = newValue;
}else {
LinkedListElement tmp = start;

while(tmp.getNext() != null && newValue.getValue() < tmp.getValue()) {
tmp = tmp.getNext();
}
if(tmp.getValue() != null) {
newValue.setNext(tmp.getNext());
}
tmp.setNext(newValue);
}

}
public void show()
{
LinkedListElement gela = start;
while (gela != null)
{
System.out.print(gela.getValue() + " ");
gela = gela.getNext();
}
}
 
Java:
public class LinkedList {
  private static class LinkedListElement {
    private int value;
    private LinkedListElement next;
  }
  private LinkedListElement start;
  public void add(int value) {
    LinkedListElement newValue = new LinkedListElement();
    newValue.value = value;
    if (start == null || newValue.value <= start.value) {
      newValue.next = start;
      start = newValue;
    } else {
      LinkedListElement tmp = start;
      while (tmp.next != null && newValue.value > tmp.next.value)
        tmp = tmp.next;
      newValue.next = tmp.next;
      tmp.next = newValue;
    }
  }
  public String toString() {
    LinkedListElement it = start;
    String res = "";
    while (it != null) {
      res += it.value + " ";
      it = it.next;
    }
    return res;
  }
  public static void main(String[] args) {
    LinkedList ll = new LinkedList();
    for (int i = 0; i < 1000; i++)
      ll.add((int) (Math.random() * 10000));
    System.out.println(ll);
  }
}
 

Zurück
Oben