Hallo Leute,
ich fall gleich mal mit der tür ins haus.
ich soll eine einfach verkettete Liste programmieren, wo ich eine nummer und einen namen eingeben soll. Nun bin ich schon den ganzen tag am gucken und ausprobieren. ich habe hier schon versucht den quellcode so zu ändern dass ich ein Tupel eingeben kann aber irgendwie komm ich da nich weiter. Nun habe ich das hier versucht ... aber ich nehme an, dass ich das einfügen der elemente noch nich ganz so richtig is...weiß aber nich wie ich das ändern kann. mein quellcode sieht momentan wie folgt aus.
hoffe ihr könnt mir irgendwie helfen, dass ich ein Tupel in mein Liste eingeben kann.
ich fall gleich mal mit der tür ins haus.
ich soll eine einfach verkettete Liste programmieren, wo ich eine nummer und einen namen eingeben soll. Nun bin ich schon den ganzen tag am gucken und ausprobieren. ich habe hier schon versucht den quellcode so zu ändern dass ich ein Tupel eingeben kann aber irgendwie komm ich da nich weiter. Nun habe ich das hier versucht ... aber ich nehme an, dass ich das einfügen der elemente noch nich ganz so richtig is...weiß aber nich wie ich das ändern kann. mein quellcode sieht momentan wie folgt aus.
Java:
public class einfacheListe{
// Datentyp für ein Element der Liste:
private class ListenElement
{
private int nutzdaten_1; // die Daten eines Elements
private String nutzdaten_2; // die Daten eines Elements
private ListenElement next; // Verweis auf Nachfolger
public ListenElement( int Zahl, String Name )
{
nutzdaten_1 = Zahl;
nutzdaten_2 = Name;
next = null;
}
// fügt hinter sich ein neues Element ein:
public void einf_dahinter( int Zahl, String Name )
{
// dazu den bisherigen Nachfolger merken, um
// ihn später als Nach-Nachfolger einsetzen zu können:
ListenElement uebernaechster = next;
// neues Element schaffen und anhängen:
next = new ListenElement( Zahl, Name );
// bisherigen Nachfolger dahinter setzen:
next.setNext( uebernaechster );
}
public void setZahl( int Zahl )
{
nutzdaten_1 = Zahl;
}
public int getZahl()
{
return nutzdaten_1;
}
public void setName( String Name )
{
nutzdaten_2 = Name;
}
public String getName()
{
return nutzdaten_2;
}
public void setNext( ListenElement next_neu )
{
next = next_neu;
}
public ListenElement getNext()
{
return next;
}
/*
// sucht nach einem Wert, und liefert das ListenElement
// (falls gefunden), oder null.
public ListenElement sucheWert( int Zahl )
{
// Schleife notfalls über alle Elemente:
ListenElement aktuellesElement = this;
do
{
if( aktuellesElement.getZahl() == Zahl )
{
return aktuellesElement;
}
aktuellesElement = aktuellesElement.getNext();
}
while( aktuellesElement.getNext() != null );
// wenn alle Elemente nicht passen, dann ist die Suche
// fehlgeschlagen:
return null;
}
// sucht nach dem Vorgänger eines Werts, und liefert das
// ListenElement (falls gefunden), oder null.
public ListenElement sucheVorgaengerVonWert( int Zahl )
{
// Schleife notfalls über alle Elemente:
ListenElement aktuellesElement = this;
do
{
if( aktuellesElement.next != null
&&
aktuellesElement.next.getZahl() == Zahl
)
{
return aktuellesElement;
}
aktuellesElement = aktuellesElement.getNext();
}
while( aktuellesElement.getNext()!=null );
// wenn alle Elemente nicht paßten, dann ist die Suche
// fehlgeschlagen:
return null;
}
*/
// Ausgabe einer Liste in einen String:
// Element ausgeben, dann ggf. den Rest
public String toString()
{
return ( " El." + nutzdaten_1 + nutzdaten_2
+ ( next==null ? "." : ", " + next.toString() )
);
//return (nutzdaten_1 + nutzdaten_2);
}
} // class ListenElement
private ListenElement anfang;
public einfacheListe()
{
anfang = null;
}
// fügt einen neuen Wert am Anfang ein:
public void einf_vorn( int Zahl, String Name )
{
// das bisherige erste Element merken, um es später zum
// zweiten zu machen (auch wenn das bisherige erste
// null ist, also die Liste bisher leer ist):
ListenElement zweites = anfang;
// ein neues erstes Element erzeugen, und mit wert
// initialisieren:
anfang = new ListenElement( Zahl , Name );
// das bisherige erste Element (oder null) hinten
// anhängen:
anfang.setNext( zweites );
}
// fügt einen neuen Wert am Ende ein:
public void einf_hinten( int Zahl, String Name )
{
// Wenn die Liste noch leer ist, dann einfach ein
// Element an den Anfang setzen:
if( anfang == null )
{
anfang = new ListenElement( Zahl , Name );
}
else
{
// Suche nach dem letzten Element:
ListenElement letztes = anfang;
while( letztes.getNext()!= null )
{
letztes = letztes.getNext();
}
// letztes hat jetzt keinen Nachfolger mehr.
// Das wird geändert:
letztes.einf_dahinter( Zahl , Name );
}
}
/*
// versucht, ein neues Element wert hinter einem gegebenen Wert
// hinterwas einzusetzen.
// Das kann natürlich fehlschlagen, wenn das Element, hinter
// dem eingefügt werden soll, gar nicht existiert.
// Dementsprechend wird true zurückgegeben, wenn alles geklappt
// hat; sonst false.
public boolean einf_HinterWert( int hinterwas, int Zahl , String Name )
{
// Leere Liste?
if( anfang == null )
{
return false;
}
else
{
ListenElement element = anfang.sucheWert( hinterwas );
if( element==null )
{
return false;
}
else
{
element.einf_dahinter( Zahl , name );
return true;
}
}
}
*/
} // public class einfacheListe
hoffe ihr könnt mir irgendwie helfen, dass ich ein Tupel in mein Liste eingeben kann.