doppelt verkette liste

Status
Nicht offen für weitere Antworten.
H

hannes12

Gast
Hallo Hallo!!!

Ich verzweifel schon die ganze Zeit an einer doppelt verketten Liste. Und zwar habe ich folgende Klassen. Ich möchte ein Buch objekt vorne in der Liste also zwischen head und dem folgen Knoten einfügen.
Laut meinen Angaben müsste das so funktionieren. Leider kommt, wenn ich das programm so starte immer eine

Exception in thread "main" java.lang.NullPointerException
at DList.addFirst(DList.java:17)
at BuchtestDop.main(BuchtestDop.java:6)


Ich vermute das das wie in der Exception meldung in der fett markierte markierten Zeile liegt. Was habe ich falsch gemacht?

Vielen Dank für die Hilfe
Code:
public class BuchtestDop {

	public static void main(String[] args){
		DList buchList = new DList();
		buchList.addFirst(new Buch("Algo Daten", "Saake"));
		buchList.addFirst(new Buch("Schöne Zeit", "Dirk Bach"));
	}
}
-----------------------------

Code:
public class DList {
		Node head = null;
		Node tail = null;
		
		public DList(){
			head = new Node();
			head.setNext(tail);
			tail = new Node();
			tail.setPrev(head);
			tail.setNext(tail);
		}
		
		//Erstes Element einketten
		public void addFirst(Object o){
			//neues Buch erstellen, 
			Node neu = new Node(o, head.getNext(), head);
			head.getNext().setPrev(neu);
			head.setNext(neu);
					
		}
}
______________________________

Code:
public class Node {
	Object element;
	Node next;
	Node prev;
	
		public Node(){
		}
		public Node(Object o, Node n , Node p){
			element =o;
			next=n;
			prev=p;
		}
	
		
		public void setElement(Object o){
			element=o;
		}
		public Object getElement(){
			return element;
		}
		public void setNext(Node n){
			next=n;
		}
		public void setPrev(Node p){
			prev=p;
		}
		public Node getNext(){
			return next;
		}
		public Node getPrev(){
			return prev;
		}
		
}

___________________________________

Code:
public class Buch {
	String buchtitel;
	String autor;

	public Buch(String sb, String sa){
		buchtitel=sb;
		autor=sa;
		
	} 
}
 
S

SlaterB

Gast
die Fehlermeldung sagt dir dass in Zeile 17 was nicht stimmt, auf ein null-Objekt zugegriffen wird,

und was steht in Zeile 17?
head.getNext().setPrev(neu);

entweder head oder head.getNext) ist null,

ja warum fragst du denn dann das Forum?
mach doch einfach vorher eine Ausgabe:
System.out.println("head: "+head);
if (head != null) {
System.out.println("head.next: "+head.getNext());
}

siehe da, head ist nicht null, head.getNext() schon,
war das schwer?

---------

nun nur noch die anderen 16 Zeilen des Progamms durchschauen,
in denen head.next gestezt wird bzw. gesetzt werden soll,
wenn man ungefähr weiß was das Programm tun soll fällt einem das einfacher,
aber in diesem Fall ja doch äußerst simpel:
Zeile head.setNext(tail); im Konstruktor

sieht zunächst mal korrekt aus, aber ist tail wirklich ein richtiges Objekt?
wie könnte man das überprüfen? genau, mit System.out.println, der einfachste Befehl der Welt..

aber man kann ja auch am Quelltext erkennen, dass tail zu diesem Zeitpunkt noch null ist,
wenn später der Variablen tail ein Objekt zugewiesen wird,
dann hat dies keine Auswirkunen auf head.next,
ok, das hätte man denken können, das ist gar nicht so leicht zu verstehen,
aber es ist nunmal so

a = null;
b = a;
a = c;

dann ist b immer noch null, nachzulesen in jedem guten Java-Buch,

---------

mit
Code:
public class DList {
      Node head = null;
      Node tail = null;
      
      public DList(){
         head = new Node();
         tail = new Node();
         head.setNext(tail);
         tail.setPrev(head);
         tail.setNext(tail);
      }
      
      //Erstes Element einketten
      public void addFirst(Object o){
         //neues Buch erstellen,
         Node neu = new Node(o, head.getNext(), head);
         head.getNext().setPrev(neu);
         head.setNext(neu);
               
      }
}

könnte es dagegen hinhauen, dann ist head.next wirklich tail
 
H

hannes12

Gast
Hallo Hallo,

Vielen Dank für die richtungsweisende Antwort inklusiver der Anweislung zur Selbsthilfe....

Schönes WE.

hannes
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
L doppelt verkette Liste Java Basics - Anfänger-Themen 5
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
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
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
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
B Doppelt Verkettete Liste - Ist alles gut so? Java Basics - Anfänger-Themen 3
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
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
T Java Methode wird unerwünscht doppelt aufgerufen?! Java Basics - Anfänger-Themen 4
R doppelt verkettete Liste aus Arrays erstellen Java Basics - Anfänger-Themen 1
OnDemand Doppelt Werte CSV Java Basics - Anfänger-Themen 2
S Doppelt verkettete Liste 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
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
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
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
T Klasse in Java für doppelt verkettete Listen Java Basics - Anfänger-Themen 4
G PropertyChangeListener empfängt Events doppelt Java Basics - Anfänger-Themen 5
G Doppelt verkettete, generische Liste Java Basics - Anfänger-Themen 11
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
D doppelt verkettete Liste Java Basics - Anfänger-Themen 16
S Doppelt Verkettete Liste Java Basics - Anfänger-Themen 7
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
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
L doppelt verkettete Liste Java Basics - Anfänger-Themen 6
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 Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 12
B Doppelt verkettete Liste Java Basics - Anfänger-Themen 16
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 Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
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
R Zeilen aus datei lesen + doppelt gespeichert? Java Basics - Anfänger-Themen 3
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
G Trotz Abfrage immer noch Zahlen doppelt Java Basics - Anfänger-Themen 3
R Benutzerregistrierung: Doppelt registriert. Java Basics - Anfänger-Themen 8
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
S Einfach verkette Liste Java Basics - Anfänger-Themen 27
C Zyklisch verkette Liste - Pop() methode implementieren Java Basics - Anfänger-Themen 2
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
H Datentypen Doppelte Verkette Liste - Verständnissproblem Java Basics - Anfänger-Themen 5
C verkette liste sortieren? Java Basics - Anfänger-Themen 7
W Rekursion und verkette Liste Java Basics - Anfänger-Themen 5
I einfach verkette Liste Java Basics - Anfänger-Themen 9
K Verkette Listen Java Basics - Anfänger-Themen 13
K Verkette Listen ? Java Basics - Anfänger-Themen 6
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben