doppelt verkettete Liste

Status
Nicht offen für weitere Antworten.
L

Lars17

Gast
Hallo!

Ich versuche gerade zu verstehen, wie dieses Programm hier funktioniert. Ich steige irgendwie nicht ganz dahinter. Zumindest nicht bei dem Punkt, wie die einzelnen Listeneinträge gespeichert werden.
Der erste Listeneintrag ist klar, aber was passiert, wenn die "20" aus dem MAIN in "public void neuen_link_hinzufügen(int d)" übergeben wird? Als erstes wird wieder ein neues bzw. das alte "doppellink" Objekt überschrieben (denke ich mir jetzt so, weils ja immer der gleiche Name ist). Wenn das alte Objekt aber überschrieben wird, dann müsste ja die "10" die zuerst in die Liste hinzugefügt wurde, jetzt durch die "20" überschrieben werden. Das macht es zwar nicht, aber ich verstehe halt nicht warum und wieso nicht.

Wäre super, wenn ihr mir das mal erklären könntet.

Vielen Dank
Lars

Code:
class doppelLink
{
	public int Daten;				//als Daten dient hier eine integer Zahl
	public doppelLink vorheriger;	//Der Verweis auf den vorherigen Link
	public doppelLink naechster;	//der Verweis auf den nächsten Link

	public doppelLink(int d)		//Der Konstruktor
	{								//es wird eine integer Zahl übergeben
		Daten=d;					//und Daten zugewiesen
	}
	public void zeigedoppelLink()	//gibt den Link als 1er Menge aus
	{
		System.out.print("{" + Daten +"} ");
	}	

}

class doppelLinkListe
{
	private doppelLink Zeiger_auf_ersten_link;	//Der Zeiger auf den 1.link

	public doppelLinkListe()					//der Konstruktor
	{											//Standdardmäßig gibt es keinen weiteren Link
		Zeiger_auf_ersten_link=null; 			//deswegen wird null angegeben
	}
	
	public boolean ist_Liste_leer()					//ist die Liste leer?
	{
		return(Zeiger_auf_ersten_link==null);		//gibt zurück ob leer oder nicht
	}
		
	public void neuen_link_hinzufügen(int d)		//Ein neuer Link wird hinzugefügt
	{
		doppelLink neuerLink= new doppelLink(d);	//instanzbildung
		neuerLink.naechster=Zeiger_auf_ersten_link;	//Verbindung zum Rest der Liste
		neuerLink.vorheriger=null;					//neuerlink ist erster link, 
													//deshalb gibt es keinen vorherigen
		if(neuerLink.naechster!=null)
		{
			doppelLink temp=neuerLink.naechster;	//temp ist 2. Link
			temp.vorheriger=neuerLink;				//das vorherige von temp ist 1.link
		}
		Zeiger_auf_ersten_link=neuerLink;			//Zeiger auf 1.Link 
													//zeigt aufs neue 1.Listenelement
	}
	
	public doppelLink link_zurueckgeben()	//gibt den ersten link zurueck
	{
		return(Zeiger_auf_ersten_link);		//Der Zeiger auf den 1.link ist eine Adresse
	}	//in der steht, wo das Objekt ist, diese Adresse wird übergeben

	
}

public class doppelLinkListeApp
{
public static void main(String argv[])
	{
	doppelLinkListe dieListe = new doppelLinkListe();	//ein neues Objekt der Klasse LinkListe wird erstellt
	dieListe.neuen_link_hinzufügen(10);					//vier links werden der Liste zugefügt
	dieListe.neuen_link_hinzufügen(20);
	dieListe.neuen_link_hinzufügen(30);
	dieListe.neuen_link_hinzufügen(40);
	
	System.out.println(dieListe);
	
	dieListe.zeigeListe();								//Ausgabe der Liste
	
	dieListe.link_loeschen();							//löschen des ersten links
	System.out.println("erster link wurde gelöscht");
	dieListe.zeigeListe();								//nochmalige Ausgabe	
	}
}
 
L

Lars17

Gast
Habe ich im Netz gefunden. Warum furchtbar? Zu kompliziert oder was verstehst sonst unter furchtbar?

mfg
Lars
 

Wildcard

Top Contributor
Da wurde einfach jede existierende Java Konvention ignoriert. Sowas lese ich mir gar nicht durch.
 
S

SlaterB

Gast
> Als erstes wird wieder ein neues bzw. das alte "doppellink"
> Objekt überschrieben (denke ich mir jetzt so, weils ja immer
> der gleiche Name ist).

gleicher Name ist egal, es wird eine neue lokale Variable erzeugt,
aber da der Zustand der vorherigen Ausführung dieser Operation sowieso schon vergessen ist, wird nix überschrieben,
das vorherige Objekt ist ja auch in der Liste, in der Exemplarlvariable Zeiger_auf_ersten_link gespeichert,
da wäre es egal was in den lokalen Variablen neu reingeschrieben wird,
ein vorheriges Objekt in einer Variablen wird dadurch nicht geändert


Beispiel:
String a = "Hallo"
-> a ist eine Variable, die auf das Objekt 'Hallo' zeigt
String b = a;
-> a und b zeigen nun auf 'Hallo'

a = "Tschüss"
-> a zeigt nun auf ein neues Objekt,
das alte Objekte 'Hallo' ist immer noch da, wird z.B. von b aus referenziert

b = null;
-> nun zeigt niemand mehr auf das Objekt 'Hallo'
-> es ist zunächst noch irgendwo im Speicher da, wird aber bald vom GarbageCollector 'entsorgt', gelöscht

es ist unmöglich, ein Objekt wie 'Hallo' irgendwie zu überschreiben,
man kann nur die Variablen, die darauf zeigen, auf was anderes zeigen lassen
 
G

Guest

Gast
Danke SlaterB....das hilft mir schon weiter.

@Wildcard...was ist an dem Programm jetzt so verkehrt bzw. was würdest du denn anderes machen. Bin für jeden Tipp dankbar oder haste eventuell ein Bsp. was deinen Vorstellungen mehr entspricht?

Danke
 
S

SlaterB

Gast
Klassen immer groß schreiben, Variablen immer klein
keine Unterstriche _ in Operations- oder Variablennamen

es gibt einfach einen Standard, den man spätenstens nach dem Anschauen
von drei Beispielen zu 99% bei zwei richtig gesehen hat,

dazu ist die ganze Benennung irgendwie recht wuselig,
vielleicht für Anfänger geeigneter..

Beispiel:
Code:
   public doppelLink link_zurueckgeben()   
   {
      return(Zeiger_auf_ersten_link);      
   }  

->


   public DoppelLink gibListenanfang() {
      return listenanfang;      
   }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
B Doppelt Verkettete Liste - Ist alles gut so? Java Basics - Anfänger-Themen 3
U Datentypen Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 13
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
B OOP Über eine doppelt verkettete Liste iterieren Java Basics - Anfänger-Themen 4
L Doppelt verkettete Liste Java Basics - Anfänger-Themen 6
R doppelt verkettete Liste aus Arrays erstellen Java Basics - Anfänger-Themen 1
S Doppelt verkettete Liste Java Basics - Anfänger-Themen 3
G Doppelt Verkettete Liste Java Basics - Anfänger-Themen 2
A Doppelt Verkettete Liste Java Basics - Anfänger-Themen 16
E doppelt verkettete liste Java Basics - Anfänger-Themen 10
E Datentypen Doppelt verkettete Liste Java Basics - Anfänger-Themen 10
P Einfügen in doppelt verkettete Liste Java Basics - Anfänger-Themen 7
S Queue als doppelt verkettete Liste Java Basics - Anfänger-Themen 2
N doppelt verkettete liste einfügen Java Basics - Anfänger-Themen 7
K Datentypen Einfach/Doppelt verkettete Liste Java Basics - Anfänger-Themen 4
W Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 2
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
D doppelt verkettete Liste Java Basics - Anfänger-Themen 16
S Doppelt Verkettete Liste Java Basics - Anfänger-Themen 7
M Doppelt verkettete Liste Zeiger Vorgänger beim Einfügen Java Basics - Anfänger-Themen 2
J doppelt verkettete Liste Java Basics - Anfänger-Themen 5
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 12
B Doppelt verkettete Liste Java Basics - Anfänger-Themen 16
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
R doppelt verkettete Liste Java Basics - Anfänger-Themen 8
F doppelt verkettete liste! Java Basics - Anfänger-Themen 8
R doppelt verkettete azyklische Liste Java Basics - Anfänger-Themen 2
T Klasse in Java für doppelt verkettete Listen Java Basics - Anfänger-Themen 4
H Doppelt verkettete Listen Java Basics - Anfänger-Themen 2
S doppelt verkettete Listen Java Basics - Anfänger-Themen 4
X Vererbung: Doppelt verkettete Listen Java Basics - Anfänger-Themen 16
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
I Input/Output Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 3
N package wird doppelt im exporer angezeigt Java Basics - Anfänger-Themen 2
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
T Löschen in doppelt verketteter Liste Java Basics - Anfänger-Themen 1
L Input/Output Println wird doppelt ausgeführt Java Basics - Anfänger-Themen 11
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
M Liste Implementation, doppelt next() Java Basics - Anfänger-Themen 13
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
Salo Datentypen "Doppelt" List(e) ("gesucht") Java Basics - Anfänger-Themen 6
L do-while-Schleife läuft doppelt, try catch fehler Java Basics - Anfänger-Themen 12
T Java Methode wird unerwünscht doppelt aufgerufen?! Java Basics - Anfänger-Themen 4
OnDemand Doppelt Werte CSV Java Basics - Anfänger-Themen 2
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
E Erste Schritte Sortieren von Objekten in doppelt-verlinkter Liste Java Basics - Anfänger-Themen 9
S Methoden Methode wird doppelt aufgerufen ... Java Basics - Anfänger-Themen 5
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
B Doppelt gekettete Listen Java Basics - Anfänger-Themen 4
G PropertyChangeListener empfängt Events doppelt Java Basics - Anfänger-Themen 5
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
H Fenster doppelt gezeichnet. Java Basics - Anfänger-Themen 2
G Einfügen aus Zwischenablage - alles doppelt? Java Basics - Anfänger-Themen 2
G JFileChooser kommt doppelt Java Basics - Anfänger-Themen 3
N Nullpointerexception bei Doppelt verketteter Liste Java Basics - Anfänger-Themen 7
M Listen richtig doppelt verkettet? Java Basics - Anfänger-Themen 13
D Exceptions in doppelt verketteter Liste Java Basics - Anfänger-Themen 5
C verify() wird doppelt aufgerufen (JTable + InputVerifier) Java Basics - Anfänger-Themen 8
H doppelt verkette liste Java Basics - Anfänger-Themen 2
L rückwärtsausgeben einer doppelt verketteten liste Java Basics - Anfänger-Themen 2
G JList und ListCellRenderer - Vector erscheint doppelt Java Basics - Anfänger-Themen 6
G JComboBox gibt SelectedItem immer doppelt aus Java Basics - Anfänger-Themen 4
B Array doppelt Felder löschen Java Basics - Anfänger-Themen 27
M Code wird doppelt ausgeführt Java Basics - Anfänger-Themen 2
R Zeilen aus datei lesen + doppelt gespeichert? Java Basics - Anfänger-Themen 3
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
R Benutzerregistrierung: Doppelt registriert. Java Basics - Anfänger-Themen 8
M Verkettete Liste Java Basics - Anfänger-Themen 1
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A Verkettete Liste Java Basics - Anfänger-Themen 2
L verkettete Liste Java Basics - Anfänger-Themen 15
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8
H Verkettete Liste Java Basics - Anfänger-Themen 7
N Verkettete liste rückwärts ausgeben Java Basics - Anfänger-Themen 18
K Verkettete Liste und seine Methoden Java Basics - Anfänger-Themen 1
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
N Verkettete Liste implementieren Java Basics - Anfänger-Themen 5
O Einfach verkettete Liste - Revert Methode Java Basics - Anfänger-Themen 1
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
C Verkettete Liste - sortiert einfügen Java Basics - Anfänger-Themen 7
R Erste Schritte Verkettete Liste will einfach nicht in meinen Schädel Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben