Hi habe hier ein etwas größeres Problem,
hatte neulich schon mal was dazu geschrieben, aber die Dinge liegen jetzt ein wenig anders. Erst mal die erste Frage, wenn die gekläer ist kommt die nächste, obwohl das auch blöd ist, vielleicht brauch ich ja die zweite für die erste. Gut.
Also es geht immer noch um doppelt verkettete Listen. Erzeuge hier eine Liste ind er Klasse List
Mit dieser MEthode kann ich mir ja recht bequem das erste Element zurück geben lassen
Jetzt suche ich ein Methde mit der ich mir das letzte Element ausgeben kann. Diese soll aber nicht rekursiv oder imperativ durch die komplette Liste laufen, sondern logischer Weise von hinten beginnen. Hab bis jetzt als Amhaltspunkt nur die Länge, weiß nich ob das wirklich weiter hilft.
Einfügen tue ich mit diesen Methoden
Die einzellnen Listen Elemente erzeuge ich hier, lokale Klasse in List
irgendwie und irgendwe muss ich jetzt auch noch die doppel verkettung realiesieren.
Naja, hoffe ihr könnt mir erstmal helfen! Warte auf eure Tipps! Danke!
hatte neulich schon mal was dazu geschrieben, aber die Dinge liegen jetzt ein wenig anders. Erst mal die erste Frage, wenn die gekläer ist kommt die nächste, obwohl das auch blöd ist, vielleicht brauch ich ja die zweite für die erste. Gut.
Also es geht immer noch um doppelt verkettete Listen. Erzeuge hier eine Liste ind er Klasse List
Code:
//Speichert die Laenge der Liste
private int length;
//Zeiger auf das erste und letzte Element
private Listenelement firstElement;
private listenelement lastElement;
//...
public List() {
firstElement = null;
length = 0;
lastElement = null;
}
//...
Mit dieser MEthode kann ich mir ja recht bequem das erste Element zurück geben lassen
Code:
public Element firstElement() {
if(isEmpty()) {
return null;
}
else {
return firstElement.wert;
}
}
Jetzt suche ich ein Methde mit der ich mir das letzte Element ausgeben kann. Diese soll aber nicht rekursiv oder imperativ durch die komplette Liste laufen, sondern logischer Weise von hinten beginnen. Hab bis jetzt als Amhaltspunkt nur die Länge, weiß nich ob das wirklich weiter hilft.
Einfügen tue ich mit diesen Methoden
Code:
//...
/**
* Fuegt ein Element am Anfang der Liste ein
* */
public void insert(Element x) {
firstElement = new Listenelement(firstElement, x);
length++;
}
/**
* Fuegt ein Element am Ender der Liste ein
* @param Element x
* */
public void append(Element x){
if (isEmpty()) {
insert(x);
}
else {
Listenelement p = firstElement;
for(; p.next != null; p = p.next);
p.next = new Listenelement(null, x);
length++;
}
}
//...
Die einzellnen Listen Elemente erzeuge ich hier, lokale Klasse in List
Code:
class Listenelement {
Listenelement next;
Element wert;
Listenelement pre;
/**
* Lokaler Konstruktor
* @param Listenelement next
* @param Element x, neues Element zum eimfügen
* */
Listenelement(Listenelement next, Element x){
System.out.println();
this.next = next;
this.wert = x;
}
irgendwie und irgendwe muss ich jetzt auch noch die doppel verkettung realiesieren.
Naja, hoffe ihr könnt mir erstmal helfen! Warte auf eure Tipps! Danke!