LinkedList

NoraaaaS

Mitglied
Kann mir jemand sagen, was in diesen Methoden passiert? Zeile für Zeile?

Java:
	public int size() {
		int count = 0 ;
		Node pointer = first;

		while (pointer != null) {
			count++;
			pointer = pointer.getNext();
		}
		return count;
	}

		//-----------------------------------------------------------
	
	
	public int getElementAt(int pos) {
		Node pointer = first;
		int position = pos;

		for (int i = 1; i < position; i++)
			pointer = pointer.getNext();
		return pointer.getData();
	}
	
		//----------------------------------------------------------
	
	
	public void setElementAt(int pos, int value) {
		Node pointer = first;
		int position = pos;
		int val = value;

		for (int i = 1; i < position; i++)
			pointer = pointer.getNext();
		pointer.setData(val);

	}
		//----------------------------------------------------------
	
	
	public int getFirst() throws SLLEmpty {
		if (first != null) {
			return first.getData();
		} else {
			throw new SLLEmpty();
		}

	}

	//----------------------------------------------------------
	
	
	public int getLast() throws SLLEmpty {
		if (first == null) {
			throw new SLLEmpty();
		} else {
			Node pointer = first;
			while (pointer.getNext() != null) {
				pointer = pointer.getNext();
			}
			return pointer.getData();
		} 
	
	
	}
	//----------------------------------------------------------
	
	public Node remove(int pos) throws SLLEmpty {
		Node pointer = first;
		Node pointerTemp = first;
		int position = pos;
		 Object value = null;

		if (first == null) {
			throw new SLLEmpty();
		} else if (position == 1) {
			removeFirst();
		} else {
			for (int i = 1; i < position - 1; i++)
				pointer = pointer.getNext();
			value = pointer.getNext().getData();
			pointerTemp = pointer.getNext().getNext();
			pointer.setNext(null);
			pointer.setNext(pointerTemp); 
		}
		return pointerTemp;
	}
	
	//----------------------------------------------------------
	
		
    public int removeFirst() throws SLLEmpty {
        if (first != null) {
            int value = first.getData();
            first = first.getNext();
			
            return value;
        } else {
            throw new SLLEmpty();
        }

    }
   //----------------------------------------------------------
    
    
    public int removeLast() throws SLLEmpty {
		int length = size();

		if (length == 0) {
			throw new SLLEmpty();
		} else if (length == 1) {
			int value = first.getData();
			first = null;
			return value;
		}
		else {
			Node pointer = first;
			while (pointer.getNext().getNext() != null) {
				pointer = pointer.getNext();
			}
			int value = pointer.getNext().getData();
			pointer.setNext(null);
			return value;
		}

	}
  
    
    public int[] toArray() {
    int size = size();
    int[] array = new int[size];
    Node pointer = first;
    int counter = 0;
    while (pointer.getNext() != null) {
        array[(int) counter] = pointer.getNext().getData();
        counter++;
        pointer = pointer.getNext();

    }
    return array;
}
}


	//----------------------------------------------------------------------------------------------------------------
 

diggaa1984

Top Contributor
Sofern du des Englischen mächtig bist, solltest wenigstens einen Versuch selber unternehmen, und uns versuchen zu erklären was du glaubst zu verstehen an dem Code. Bei Fehlern ist man gern gewillt zu helfen, aber bei 0 Eigeninitiative ist Hilfe idR [STRIKE]ausgeschlossen[/STRIKE] nicht zu erwarten.
 

NoraaaaS

Mitglied
Sofern du des Englischen mächtig bist, solltest wenigstens einen Versuch selber unternehmen, und uns versuchen zu erklären was du glaubst zu verstehen an dem Code. Bei Fehlern ist man gern gewillt zu helfen, aber bei 0 Eigeninitiative ist Hilfe idR [STRIKE]ausgeschlossen[/STRIKE] nicht zu erwarten.

Ich bitte Dich! Ich sitze heute den ganzen Tag dran, und komme nicht vorran.
Ich schreibe hier aus lauter Verzweiflung!
Es ist nicht so, dass ich nichts getan habe, komme einfach nur nicht vorran.

Deswegen BITTE
 

diggaa1984

Top Contributor
Ich bitte dich dann auch, sry aber es gibt genug Beiträge die derart kurz und knapp beginnen mit ewig Codezeilen dran. Wenn du selbst schon vordokumentieren würdest, soviel wie geht versteht sich, dann ist das was anderes, dann kann man das vervollständigen oder korrigieren, aber einfach ma 140 Zeilen neu kommentiert bekommen ist nicht selbstverständlich.

Ich helf gern, gar kein Thema, aber nicht von 0 an :bahnhof:
 

NoraaaaS

Mitglied
Ich bitte dich dann auch, sry aber es gibt genug Beiträge die derart kurz und knapp beginnen mit ewig Codezeilen dran. Wenn du selbst schon vordokumentieren würdest, soviel wie geht versteht sich, dann ist das was anderes, dann kann man das vervollständigen oder korrigieren, aber einfach ma 140 Zeilen neu kommentiert bekommen ist nicht selbstverständlich.

Ich helf gern, gar kein Thema, aber nicht von 0 an :bahnhof:

und ich leider nicht, warum kannst du mir nicht helfen?
Für jemand, der Java kennt, ist das mit Sicherheit kein Problem!
Für mich leider schon!

Deswegen bin ich um diese Uhrzeit noch dran und verzweifelt.
Deswegen BITTE!
Ich verstehe wirklich nicht viel..
 

Schandro

Top Contributor
Ich muss mich diggaa1984 anschließen. Was ist den dein konkretes Problem? Zeile für Zeile wird dir das niemand erklären. Natürlich könnten wir es, das ist kein Problem, aber warum sich so viel Arbeit machen?
 

Schandro

Top Contributor
Ich verstehe diesen Code einfach nicht!
Dann fall halt durch die Prüfung die du anscheinend morgen schreiben must durch und les ein Java Buch, für jemanden keine Ahnung hat ist ein Forum der falsche Ort. Den wenn du zumindest ein bisschen Ahnung hättest könntest du ja eine konkrete Stelle nennen die du nicht verstehst, oder?...
 

xehpuk

Top Contributor
Java:
    public int size() { // Methodensignatur. public = überall sichtbar, int = Rückgabewert (32-Bit-Ganzzahl), size = Methodenname ("Größe")
        int count = 0 ; // deklariert Variable count vom Typ int und weist dieser den Wert 0 zu
        Node pointer = first; // deklariert Variable pointer vom Typ Node und weist dieser den Wert von first zu
 
        while (pointer != null) { // wiederholt, bis die Variable pointer null ist
            count++; // inkrementiert die Variable count
            pointer = pointer.getNext(); // weist der Variable pointer den Rückgabewert des Methodenaufrufs pointer.getNext() zu
        }
        return count; // gibt die Variable count zurück
    }

http://www.java-forum.org/hausaufga...eim-erschleichen-loesungen-fuer-aufgaben.html
 

NoraaaaS

Mitglied
Java:
    public int size() { // Methodensignatur. public = überall sichtbar, int = Rückgabewert (32-Bit-Ganzzahl), size = Methodenname ("Größe")
        int count = 0 ; // deklariert Variable count vom Typ int und weist dieser den Wert 0 zu
        Node pointer = first; // deklariert Variable pointer vom Typ Node und weist dieser den Wert von first zu
 
        while (pointer != null) { // wiederholt, bis die Variable pointer null ist
            count++; // inkrementiert die Variable count
            pointer = pointer.getNext(); // weist der Variable pointer den Rückgabewert des Methodenaufrufs pointer.getNext() zu
        }
        return count; // gibt die Variable count zurück
    }

http://www.java-forum.org/hausaufga...eim-erschleichen-loesungen-fuer-aufgaben.html


Warum, weit der Variable Pointer den Rückgabewert des Methodenaufrufs pointer.getNext() zu?
Ich verstehe diesen Vorgang nicht!
 

diggaa1984

Top Contributor
Warum, weit der Variable Pointer den Rückgabewert des Methodenaufrufs pointer.getNext() zu?
Ich verstehe diesen Vorgang nicht!


Java:
Node pointer = first;

while (pointer != null) {
    count++;
    pointer = pointer.getNext();
}

pointer zeigt mit dem ersten Befehl auf das erste Element der Liste. Danach wird die Schleife solange ausgeführt, bis pointer auf null zeigt. Also kann die Schleife nur beendet werden (wenn Elemente in der Liste vorhanden sind) wenn sich pointer, während der Ausführung auch ändert. Würde sich pointer nie ändern, dann wäre das eine Endlosschleife, wenn mind. 1 Element in der Liste enthalten ist!

Daher wird pointer (der Variable zur Überprüfung des Schleifenabbruchs) innerhalb der Schleife ein neuer Wert zugewiesen, das Folgeelement des aktuell durch pointer referenzierten Elementes. Somit zeigt pointer irgendwann auf null, wenn getNext() des letzten Listenelementes aufgerufen wurde. Der Nachfolger des letzten Elementes ist null!

Hoffe das war irgendwie klar!?
 
Zuletzt bearbeitet:

bobbsen

Mitglied
Lege 5 Äpfel in eine Reihe vor dir auf den Tisch.

Zeige auf den linken Apfel. Wenn vorhanden, sage laut "Eins". Rücke mit deinem Finger 5cm nach rechts.
Zeige auf den Apfel. Wenn vorhanden, sage laut "Zwei". Rücke mit deinem Finger 5cm nach rechts.
Zeige auf den Apfel. Wenn vorhanden, sage laut "Drei". Rücke mit deinem Finger 5cm nach rechts.
Zeige auf den Apfel. Wenn vorhanden, sage laut "Vier". Rücke mit deinem Finger 5cm nach rechts.
Zeige auf den Apfel. Wenn vorhanden, sage laut "Fünf". Rücke mit deinem Finger 5cm nach rechts.

Wenn kein Apfel mehr vorhanden sein sollte. denk nach, was du als letztes gesagt hast.

meow?
 

tuttle64

Bekanntes Mitglied
Warum, weit der Variable Pointer den Rückgabewert des Methodenaufrufs pointer.getNext() zu?
Ich verstehe diesen Vorgang nicht!


Damit die while-Schleife prüfen kann, ob pointer auf das Ende der Liste zeigt, wird die Referenz von pointer.getNext() an pointer zugewiesen. Andere Frage: Weisst Du was eine LinkedList ist und wie sie arbeitet?
 

EnHancEd[]

Aktives Mitglied
Du kannst doch nicht einen Code hier posten, den du nichtmal Ansatzweise verstehst?
Das ist ja ein Hilfs-Forum wenn man es so ausdrücken darf und kein "Lösung-auf-Anhieb"- Forum.

Wenn du eine Prüfung schreibst, solltest du dich doch mal nebenher informiert haben und dir ein Buch o.ä. zugelegt haben?..

Ansonsten schau im Galileo- Openbook die Themen gezielt nach, denn ein Code zu verstehen Bedarf dem Verständnis mehrerer Themen.

--
 

njans

Top Contributor
@NoraaaaS
Hast du denn verstanden oder glaubst zu verstehen, wie die Single Linked List in deinem Beispiel generell aufgebaut ist ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A LinkedList implementieren Java Basics - Anfänger-Themen 32
M Wie kann ich den Index i von einer LinkedList überprüfen? Java Basics - Anfänger-Themen 36
Düsseldorf2002 Datentypen Verschachtelte LinkedList Java Basics - Anfänger-Themen 5
Düsseldorf2002 Datentypen Zwei dimensionale LinkedList Java Basics - Anfänger-Themen 8
B Warteschlange erstellen mit LinkedList ? Java Basics - Anfänger-Themen 6
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
G Java LinkedList remove Methode Java Basics - Anfänger-Themen 5
G Java LinkedList Java Basics - Anfänger-Themen 6
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
S Eigene LinkedList Klasse Java Basics - Anfänger-Themen 4
S Mit einer LinkedList vorwärts und rückwärts iterieren Java Basics - Anfänger-Themen 6
S Endlosschleife beim Ausgeben einer LinkedList Java Basics - Anfänger-Themen 2
G Java LinkedList Java Basics - Anfänger-Themen 3
B LinkedList add-Methode Java Basics - Anfänger-Themen 10
F Windows in LinkedList registrieren Java Basics - Anfänger-Themen 3
A Hilfe, LinkedList Java Basics - Anfänger-Themen 2
H Knoten-Reihenfolge einer LinkedList invertieren Java Basics - Anfänger-Themen 11
H linkedlist generische klassen Java Basics - Anfänger-Themen 169
O Hashmap, ArrayList, LinkedList Java Basics - Anfänger-Themen 7
P Quellcode LinkedList Java Basics - Anfänger-Themen 2
F Collection Aufgabe mit LinkedList Java Basics - Anfänger-Themen 3
N Hilfe bei verknüpfter Liste - Linkedlist Java Basics - Anfänger-Themen 11
P Datentypen LinkedList: Kopie behält Referenz? Java Basics - Anfänger-Themen 3
C ArrayList vs LinkedList vs ? Java Basics - Anfänger-Themen 15
C LinkedList vs. ArrayList Java Basics - Anfänger-Themen 15
O LinkedList zu ArrayList Java Basics - Anfänger-Themen 4
M LinkedList elemente löschen Java Basics - Anfänger-Themen 2
L Problem mit LinkedList Java Basics - Anfänger-Themen 3
F In LinkedList einen Wert ersetzen oder neu einfügen Java Basics - Anfänger-Themen 7
P Hashmap anstatt LinkedList? Java Basics - Anfänger-Themen 6
TechGirl LinkedList - kurze allgemeine Frage Java Basics - Anfänger-Themen 17
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
L LinkedList Comparable < > MEHRFACH implementieren? Java Basics - Anfänger-Themen 3
S LinkedList mit Input vergleichen. Java Basics - Anfänger-Themen 5
C Bei der LinkedList auf Palindrom überprüfen Java Basics - Anfänger-Themen 4
F Element aus LinkedList löschen Java Basics - Anfänger-Themen 3
A LinkedList: Probleme beim Auslesen Java Basics - Anfänger-Themen 2
T Collections LinkedList<LinkedList<T>> - Implementierung Java Basics - Anfänger-Themen 10
S Jfreechart mit LinkedList befüllen Java Basics - Anfänger-Themen 1
S JTable LinkedList <Objekt> befüllen Java Basics - Anfänger-Themen 1
K LinkedList aus Arrays ( Lösungsraum Mastermind ) Java Basics - Anfänger-Themen 5
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
Farbenfroh int in LinkedList einsortieren Java Basics - Anfänger-Themen 4
W Klassen LinkedList funktioniert nicht Java Basics - Anfänger-Themen 6
X LinkedList - Index eines Objekts Java Basics - Anfänger-Themen 2
S Strings in eine LinkedList schreiben und auslesen? Java Basics - Anfänger-Themen 4
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
F Eigene LinkedList - toString Java Basics - Anfänger-Themen 10
T Datentypen gleichmäßiges mischen von 2 LinkedList Java Basics - Anfänger-Themen 3
S Dateien/LinkedList/StringBuffer - SOrtierung klappt nicht so ganz Java Basics - Anfänger-Themen 2
J Datentypen Array von einer LinkedList Java Basics - Anfänger-Themen 5
R LinkedList Java Basics - Anfänger-Themen 8
J Per I/O Streams in LinkedList oder ArrayList schreiben/lesen Java Basics - Anfänger-Themen 6
B LinkedList remove Java Basics - Anfänger-Themen 5
J statische Methoden auf eine LinkedList initialisieren? Java Basics - Anfänger-Themen 5
G Hausaufgabe mit LinkedList und LinkedListStack verstehen Java Basics - Anfänger-Themen 6
N LinkedList-checkForComodification Java Basics - Anfänger-Themen 11
P LinkedList sortieren Java Basics - Anfänger-Themen 20
P LinkedList - Stack ... grundlegende Frage Java Basics - Anfänger-Themen 5
Z Erste Schritte LinkedList Werte abfragen und vergleichen Java Basics - Anfänger-Themen 3
B SUCHE: Threadsafe LinkedList Java Basics - Anfänger-Themen 10
Binary.Coder Wie linkedlist für Djikstra nutzen? Java Basics - Anfänger-Themen 6
M Arrays in LinkedList Java Basics - Anfänger-Themen 4
R Collections Probleme mit contains()-Methode [LinkedList] Java Basics - Anfänger-Themen 5
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
M LinkedList aktuelle position Java Basics - Anfänger-Themen 3
G Frage zu LinkedList Java Basics - Anfänger-Themen 15
H Dynamische Bindung mit Interfaces und LinkedList Java Basics - Anfänger-Themen 7
I LinkedLIst / ArrayList Konstruktor Java Basics - Anfänger-Themen 4
B Collections RandomAccessfile & Linkedlist Java Basics - Anfänger-Themen 4
S Speichermangel ArrayList/LinkedList Java Basics - Anfänger-Themen 3
V LinkedList size() Java Basics - Anfänger-Themen 2
darekkay Datentypen HashSet bzw. LinkedList mit Werten initialisieren Java Basics - Anfänger-Themen 3
D Probleme mit LinkedList Java Basics - Anfänger-Themen 6
L LinkedList vorgänger Knoten zurück geben Java Basics - Anfänger-Themen 4
S LinkedList indexOf() - geht des irgendwie schneller? Java Basics - Anfänger-Themen 23
S LinkedList<String[]> filtern und sortieren Java Basics - Anfänger-Themen 9
W LinkedList Java Basics - Anfänger-Themen 12
S Frage zum speichern der Daten in einer LinkedList Java Basics - Anfänger-Themen 2
D Fenster in LinkedList verwalten Java Basics - Anfänger-Themen 2
C HashMap mit LinkedList Java Basics - Anfänger-Themen 5
S Datentypen LinkedList Konstruktor, add Alternative Java Basics - Anfänger-Themen 2
truesoul LinkedList Problem Java Basics - Anfänger-Themen 6
M Java Generics LinkedList Java Basics - Anfänger-Themen 5
H LinkedList Element an Stelle x ausgeben? Java Basics - Anfänger-Themen 5
D LinkedList aufrufe Java Basics - Anfänger-Themen 3
S Problem mit ObjectInputStream beim Einlesen von LinkedList Java Basics - Anfänger-Themen 3
S Serialized LinkedList aus Datei Laden Java Basics - Anfänger-Themen 15
S LinkedList Java Basics - Anfänger-Themen 2
M LinkedList in anderer Klasse nutzen Java Basics - Anfänger-Themen 4
L LinkedList sortieren Java Basics - Anfänger-Themen 5
L heap space, LinkedList umspeichern Java Basics - Anfänger-Themen 15
H LinkedList mit Strings Exception Java Basics - Anfänger-Themen 3
S IndexOutofBoundsException bei linkedlist Java Basics - Anfänger-Themen 5
B Fehlersuche bei LinkedList Java Basics - Anfänger-Themen 3
B LinkedList - Berechnung des Produkts Java Basics - Anfänger-Themen 6
S Sortierte LinkedList nach Variablen durchsuchen und nicht nach INDEX Java Basics - Anfänger-Themen 6
B Unterschied ArrayList und LinkedList Java Basics - Anfänger-Themen 5
S Implementierung gegen Interfaces / List, ArrayList, LinkedList Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben