Kann mir jemand einen Anhaltspunkt geben wie ich eine solche Liste mit einem Abschluss vereinfachen kann? Habe leider keine Ahnung wo ich anfangen soll:shock:
Liste:
Knoten:
Liste:
Java:
public class VerketteteListe {
private Knoten kopf;
public VerketteteListe() {
}
public void einfuegen(Datenelement e, int position) {
if (kopf == null) {
kopf = new Knoten(e);
} else {
if (position == 0) {
Knoten temp = new Knoten(e);
temp.hintermannSetzen(kopf);
kopf = temp;
} else {
kopf.einfuegen(e, position - 1);
}
}
}
public void entfernen(int position) {
if (position == 0) {
if (kopf != null) {
Datenelement temp = kopf.datumGeben();
kopf = kopf.hintermannGeben();
// System.out.println(temp);
}
} else {
kopf.entfernen(position-1);
}
}
public int laengeGeben() {
if (kopf == null)
return 0;
return kopf.laengeAbHier();
}
public void ausgeben() {
if (kopf != null) {
kopf.ausgeben();
}
}
}
Knoten:
Java:
public class Knoten {
private Datenelement e;
private Knoten hintermann;
public Knoten(Datenelement e) {
this.e = e;
}
public void hintermannSetzen(Knoten hintermann) {
this.hintermann = hintermann;
}
public Datenelement datumGeben() {
return e;
}
public Knoten hintermannGeben() {
return hintermann;
}
public Datenelement entfernen(int position) {
if (hintermann == null) {
return null;
}
if (position == 0){
Datenelement d = hintermann.datumGeben();
hintermann = hintermann.hintermannGeben();
return d;
} else {
return hintermann.entfernen(position - 1);
}
}
public void einfuegen(Datenelement e, int position) {
if (position == 0) {
Knoten temp = new Knoten(e);
temp.hintermannSetzen(hintermann);
hintermann = temp;
} else {
if (hintermann != null) {
einfuegen(e, position - 1);
} else {
hintermann = new Knoten(e);
}
}
}
public int laengeAbHier() {
if (hintermann == null)
return 1;
return hintermann.laengeAbHier() + 1;
}
public void ausgeben() {
e.ausgeben();
if (hintermann != null) {
hintermann.ausgeben();
}
}
}