Methoden Einfach verkette Liste - int Werte aufsteigend sortieren

C

canton

Neues Mitglied
Hey Forum,
habe hier bereits die Suche bemüht bin aber aus den bestehenden Threads leider nicht schlauer geworden.

Habe eine Aufgabe vor mir liegen bei der eine einfach verkette Liste mit int Werten aufsteigend sortiert werden soll. Also falls aktueller Wert des Knoten größer als der des Folgeknotens --> Werte tauschen.

Der Einfachheit halber wird bei der Liste nicht zwischen Listenelementen und der Liste unterschieden. Also alles in einer Klasse.

Die Klasse dazu:
Java:
public class Node {
    int wert;
    Node next;
 
    public Node(int value, Node next) {
        this.wert = value;
        this.next = next;
    }
 
    public static void bubbleSort(Node m) {
        int count =0;
        while(m != null) {
            count++;
            m = m.next;
        }
     
        int hilf;
     
        for(int i=0; i<count; i++) {         
            if(m.wert > m.next.wert) {             
                hilf = m.wert;
                m.wert = m.next.wert;
                m.next.wert = hilf;
                m = m.next;
            }
            else m=m.next;         
        }
    }



Meine Überlegungen dazu waren:
- Zählen wie lang die Liste und anschließend mit einer for Schleife die Liste
die Anzahl durchzulaufen und dabei per Ringtausch die Werte zu sortieren...

Das Programm wirft nun leider eine Nullpointer Exception, was ja bedeutet das meine if Abfrage ins Niemandsland (null) führt...


Falls jemand einen Tipp hat wäre ich sehr dankbar!


PS: Mein Text war deutlich umfangreicher aber als ich posten wollte war ich schon ausgeloggt und es kam eine Fehlermeldung, habe dann auf "zurück" im Browser geklickt wodurch ich zwar wieder hierhin gelangt bin aber der halbe Text ist weg :/
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Ich habe das jetzt nicht im Detail durchdacht, aber mein Verdacht würde gefühlsmäßig auf die Länge Deiner Schleife fallen. Du ermittelst die Anzahl der Elemente und dann gehst Du die Elemente durch in der Schleife. Aber da Du ja auch immer auf m und m.next zugreifst, wirst Du hier auf ein Fehler laufen (Du hast sozusagen das aktuelle Element und den Nachfolger im Zugriff. Beim letzten Element gibt es aber keinen Nachfolger mehr!)

Und dann sehe ich nur eine Schleife. Aber mit der Schleife bringst Du ja nur das größte Element nach hinten. Daher brauchst Du eine zweite Schleife. Die zu betrachtenden Elemente können aber jedes Mal um eins reduziert werden, da ja fest steht, dass das größte Element vom Rest immer am Ende gelandet ist.

Und noch eine Optimierung. In Deinem if/else hast du als letztes den gleichen Befehl. Also
Code:
if (bedingung) {
  // Something in if
  a;
} else {
  // Something in else
  a;
}

Hier ist dann der Befehl a; "ausklammer bar". Also Du kannst den Befehl hinter die if Anweisung bringen. Und da es der Einzige Befehl im else Zweig ist, entfällt dieser.
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Einfach verkette Liste Java Basics - Anfänger-Themen 27
I einfach verkette Liste Java Basics - Anfänger-Themen 9
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
K Programm stoppt einfach ohne Grund Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
N Best Practice Doppelte und einfach Anführungsstriche in Runtime.getruntime().exec() Java Basics - Anfänger-Themen 6
O Exception behandlung einfach Ueben mit Fakt! Java Basics - Anfänger-Themen 10
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
Hanschyo Programm schließt sich einfach Java Basics - Anfänger-Themen 2
O Einfach verkettete Liste - Revert Methode Java Basics - Anfänger-Themen 1
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
R Erste Schritte Verkettete Liste will einfach nicht in meinen Schädel Java Basics - Anfänger-Themen 11
V Codezeile wird einfach nicht ausgeführt Java Basics - Anfänger-Themen 23
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
K Einfach Verkettete Liste - addFirst() Java Basics - Anfänger-Themen 7
N Einfacher Rechner (für mich nicht so einfach) Java Basics - Anfänger-Themen 5
M Array in ein Array übertragen (möglichst einfach) Java Basics - Anfänger-Themen 6
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
R Methoden... ich vesteh sie einfach nicht Java Basics - Anfänger-Themen 15
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
C Erste Schritte Problem mit der Division von Koeffizienten... oder einfach nur irgendwlechen zahlen Java Basics - Anfänger-Themen 10
D Klassen Klassen, Objekte, Konstruktor - einfach erklärt Java Basics - Anfänger-Themen 12
B Variable wird einfach so wieder auf "null" gesetzt Java Basics - Anfänger-Themen 12
T Elemente im Vector werden einfach überschrieben! Java Basics - Anfänger-Themen 3
X Einfach Verkettete Liste Java Basics - Anfänger-Themen 16
S ich begreife es einfach nicht -> zweck der Schnittstellen Java Basics - Anfänger-Themen 27
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
W Java-Programm als Icon mit Doppelklick einfach öffnen ? Java Basics - Anfänger-Themen 3
M Layout einfach bilden Java Basics - Anfänger-Themen 4
I Weiß einfach nicht mehr weiter... Java Basics - Anfänger-Themen 3
K Datentypen Einfach/Doppelt verkettete Liste Java Basics - Anfänger-Themen 4
N einfach verkettete liste fehler Java Basics - Anfänger-Themen 5
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
N einfach verkettete liste Java Basics - Anfänger-Themen 3
A If-Schleife spinnt - ganz einfach Code - Riesen Problem :) Java Basics - Anfänger-Themen 9
Luk10 einfach animation Java Basics - Anfänger-Themen 2
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
E JMC - Dlls einbinden - möglichst einfach Java Basics - Anfänger-Themen 8
S einfach verkettete Liste Java Basics - Anfänger-Themen 19
H Typumwandlung String --> Int (ganz einfach) Java Basics - Anfänger-Themen 9
O Observer - Einfach erklärt? Java Basics - Anfänger-Themen 5
T Einfach verkettete Liste: Wie Elemente löschen? Java Basics - Anfänger-Themen 4
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
M jar-Datei einfach umbenennen? Java Basics - Anfänger-Themen 8
D Einfach verkettete Liste Java Basics - Anfänger-Themen 20
S Filewriter schreibt einfach nicht Java Basics - Anfänger-Themen 6
G Opjektorientierte Programmierung (OOP). einfach für euch Java Basics - Anfänger-Themen 4
X WAV conversion ist einfach nicht möglich Java Basics - Anfänger-Themen 2
J jar erstellen. Es klappt einfach nicht Java Basics - Anfänger-Themen 14
L Eingeben Rechnen Ausgeben - Leider nicht so einfach Java Basics - Anfänger-Themen 31
P einfach frage zur vererbung Java Basics - Anfänger-Themen 9
G Frank A. - ports einfach öffnen und schließen Java Basics - Anfänger-Themen 3
M Caeser Verschlüsselung ganz einfach(nicht für mich) Java Basics - Anfänger-Themen 6
L while wird einfach übersprungen? Java Basics - Anfänger-Themen 4
D einfach berechnung einer onlinezeit Java Basics - Anfänger-Themen 25
B Thread will einfach nicht stoppen Java Basics - Anfänger-Themen 12
B Packages einfach kopieren? Java Basics - Anfänger-Themen 13
N Mein Applet findet -online- einfach die Klasse nicht ! Java Basics - Anfänger-Themen 6
S Java rundet einfach auf 0 Java Basics - Anfänger-Themen 2
C einfach verkettete Liste -> Elemente vertauschen Java Basics - Anfänger-Themen 2
L Ein Bild auf ein JFrame legen. nicht so einfach? =( Java Basics - Anfänger-Themen 11
M Tablelayout einbinden - ich schaff's einfach nicht Java Basics - Anfänger-Themen 16
D Button Text will einfach nicht erscheinen Java Basics - Anfänger-Themen 6
M Methoden. ich versteh das einfach nicht! Bitte helfen! Java Basics - Anfänger-Themen 4
H Kann man in Java einfach einen Beep erzeugen Java Basics - Anfänger-Themen 2
C einfach aber komisch Java Basics - Anfänger-Themen 5
R einfach verkettete Liste, intersect Java Basics - Anfänger-Themen 4
P Restart Button für einfach Applikation Java Basics - Anfänger-Themen 7
H RAF geht einfach nicht Java Basics - Anfänger-Themen 12
D RegEx Probleme - wahrscheinlich zu einfach. Java Basics - Anfänger-Themen 2
E einfach verkettete liste, nullPointerException Java Basics - Anfänger-Themen 5
H Einfach Datenübergabe Java Basics - Anfänger-Themen 4
S RegEx Syntax - ich verstehe sie einfach nicht! Java Basics - Anfänger-Themen 3
V Teil eines Programms funktioniert einfach nicht Java Basics - Anfänger-Themen 2
V If Schleife wird beim ausführen einfach ignoriert Java Basics - Anfänger-Themen 4
D Einfach Leerzeile einfügen ? Java Basics - Anfänger-Themen 2
G Owner von JDialog;Komme einfach nicht weiter Java Basics - Anfänger-Themen 4
B Applet geht einfach nicht Java Basics - Anfänger-Themen 16
S UIManager kann einfach nicht aufgelöst werden Java Basics - Anfänger-Themen 4
R Einfach if-Abfrage Java Basics - Anfänger-Themen 7
B Eine Linie zeichnenmit Java, ich verstehe das einfach nicht Java Basics - Anfänger-Themen 4
A Einfach, gut erklärte Übungen!!! Java Basics - Anfänger-Themen 3
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
H Datentypen Doppelte Verkette Liste - Verständnissproblem Java Basics - Anfänger-Themen 5
C verkette liste sortieren? Java Basics - Anfänger-Themen 7
W Rekursion und verkette Liste Java Basics - Anfänger-Themen 5
K Verkette Listen Java Basics - Anfänger-Themen 13
K Verkette Listen ? Java Basics - Anfänger-Themen 6
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
H doppelt verkette liste Java Basics - Anfänger-Themen 2
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
Z Liste umkehren Java Basics - Anfänger-Themen 1
S Eine Liste kopieren Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Anzeige

Neue Themen


Oben