einfachen verkettete Liste

mucos001

Mitglied
Hallo Forum
Ich habe eine Liste geschrieben.Ich habe schon eine Problem Liste Kopien
ich möchte kopieren , aller Elemente der orginal Liste enthalten
könntet ihr mir bitte helfen
danke


public class Link
{
public int daten;
public Link naechster;


public Link(int daten, Link naechster)
{
this.daten = daten;
this.naechster = naechster;
}
}

public class Liste
{
private Link anfang, ende;

public Liste()
{
anfang = ende = null;
}

public void anfuegen(int daten)
{
Link neu = new Link(daten, null);

if(anfang == null)
{
anfang = ende = neu;
}
else
{
ende = ende.naechster = neu;
}
}


public Liste kopieren()
{
Liste copy = new Liste();

Link zeiger = anfang;

while(zeiger != null)
{
copy.anfuegen(zeiger.daten);
zeiger = zeiger.naechster;
}
copy.anfang = zeiger;

return copy;

}


public void ausgeben()
{
System.out.print("Liste:");

Link aktuel = anfang;

while(aktuel != null)
{
System.out.print(aktuel.daten);

aktuel = aktuel.naechster;
}
}

}

public class Main
{

public static void main(String[] args)
{
Liste l = new Liste();

l.anfuegen(5);
l.anfuegen(6);
l.anfuegen(7);

System.out.println(l.kopieren());

l.ausgeben();
}

}

}
 
K

kneitzel

Gast
Java:
public Liste kopieren() {
  Liste copy = new Liste();

  Link zeiger = anfang;

  while(zeiger != null) {
    copy.anfuegen(zeiger.daten);
    zeiger = zeiger.naechster;
  }

  // Was willst Du hier machen? zeiger ist null, sonst wäre er noch in der while schleife!
  copy.anfang = zeiger;

  return copy;
}

Also wie im Kommentar geschrieben: Das macht so keinen Sinn!

Du hast in der While Schleife alle Element hinzugefügt, also bist Du danach fertig und musst copy.anfang nicht mehr setzen. Das ist ja schon korrekt auf dem ersten Element!
 

Neue Themen


Oben