Ring - push Object

Status
Nicht offen für weitere Antworten.

Wusaa

Aktives Mitglied
Hallo,
habe nächste woche ne klausur und ich versteh das folgende stück quellcode einer Methode "push" aus einer Klasse "Ring" (doppeltverkettete liste) nicht richtig.

Also ich schreibe jetzt mal hinter jede Zeile was ich glaube was sie macht :)
Wäre super wenn mir jemand helfen könnte bzw. es korrigiert

Code:
public void push( RingObject element ) throws RingFull {
      if ( numberElements > size -1 ) throw new RingFull();   // anzahl der elemente müssen > als die verfügbare größe -1 sein

      if ( start == null ) {      // wenn kein erstes Element existiert
    	 start = end = new Node();  //da kein erstes Element existiert ist der Start = Ende = neuer Knoten der eingefügt wird
    	 start.element = element;                         //  verstehe ich nicht
         start.backward = start.forward = start;    //  verstehe ich nicht
         
      } else {   // Anfuegen eines neuen Knoten am Anfang "start") des Rings
         Node tempNode = new Node();   //  verstehe ich  nicht
         tempNode.element  = element;  //  verstehe ich nicht
         tempNode.backward = start;     //  verstehe ich nicht
 		 tempNode.forward  = end;    // ist ab hier bis
		 start.forward     = tempNode;
		 start             = tempNode;
		 end.backward      = start;  // hier die doppelte verkettung?
	 
      } // if ..else
      numberElements++;
   } // push( int )



MfG
 

outbreaker

Bekanntes Mitglied
Code:
public void push( RingObject element ) throws RingFull {
      if ( numberElements > size -1 ) throw new RingFull();   // anzahl der elemente müssen > als die verfügbare größe -1 sein

      if ( start == null ) {      // wenn kein Element existiert
        start = end = new Node();  //da kein erstes Element existiert ist der Start = Ende = neuer Knoten der eingefügt wird
        start.element = element;                         //  hier wird das start Element gesetzt und das ist genau das was du mit push oben übergibst
         start.backward = start.forward = start;    //  wenn du von deinem start Node eines zurück gehst bist du wieder beim start und wenn du einen vorwärts gehst bist du auch wieder beim start da es ja nur ein Element gibt
         
      } else {   // Einfügen eines neuen Elements in den Ring wenn schon ein start Node vorhanden ist
         Node tempNode = new Node();   //  neuen Node erstellen
         tempNode.element  = element;  //  dein übergebenes Element wird an den Node gehangen
         tempNode.backward = start;     //  wenn du von deinem neuen Node eins zurück gehst bist du wieder am anfang (start) da das Node ja an das ende gehangen wird

       tempNode.forward  = end;    // wenn du von deinem Temp Node eins vorwärts gehst bis du am ende(=start)

       start.forward     = tempNode; // wenn du jetzt von deinem start Node eines Vorwärts gehst bist du bei dem Node welches du gerade eingefügt hast

       start             = tempNode; //der neue Node wird der start Node

       end.backward      = start;  // dein Ende zeigt wieder auf den neuen Anfang
   
      } // if ..else
      numberElements++;
   } // push( int )

ich habe es mal versucht zu erklären hoffe es ist richtig so
 

Leroy42

Top Contributor
Wusaa hat gesagt.:
Code:
public void push( RingObject element ) throws RingFull {
      if ( numberElements > size -1 ) throw new RingFull();   // anzahl der elemente müssen > als die verfügbare größe -1 sein
// Ja

      if ( start == null ) {      // wenn kein erstes Element existiert
// Ja
    	 start = end = new Node();  //da kein erstes Element existiert ist der Start = Ende = neuer Knoten der eingefügt wird
// Ja
    	 start.element = element;                         //  verstehe ich nicht
// Einfach das Einfügen des Elements
         start.backward = start.forward = start;    //  verstehe ich nicht
// Der Vorgänger und Nachfolger werden auf sich selbst gesetzt
// Keine Ahnung warum 
         
      } else {   // Anfuegen eines neuen Knoten am Anfang "start") des Rings
// Ja
         Node tempNode = new Node();   //  verstehe ich  nicht
// Neuen Node erstellen
         tempNode.element  = element;  //  verstehe ich nicht
// Mit Element füllen
         tempNode.backward = start;     //  verstehe ich nicht
// Sein Vorgänger wird das alte start
 		 tempNode.forward  = end;    // ist ab hier bis
// Sein Nachfolger wird end
		 start.forward     = tempNode;
// Das Nachfolgerelement des jetzigen start's wird der neue Knoten
		 start             = tempNode;
// tempNode wird das neue start der Liste
		 end.backward      = start;  //
// Der Vorgänger des Knotens end wird der neue Knoten
	 
      } // if ..else
      numberElements++;
   } // push( int )



MfG
 

Wusaa

Aktives Mitglied
hm is doch noch nicht soo ganz klar.


Diese Beiden Zeilen sind mir nicht ganz klar.







tempNode.backward = start; // Sein Vorgänger wird das alte start
//wenn du von deinem neuen Node eins zurück gehst bist du wieder am anfang (start) da das Node ja an das
ende gehangen wird

Weil das TempNode fügt man ja hinten an, oder? Und wenn ich dann ein Element nach vorne gehe bin ich wieder am Start. Ok das kann ich soweit nachvollziehen



tempNode.forward = end; // Sein Nachfolger wird end
//wenn du von deinem Temp Node eins vorwärts gehst bis du am ende(=start)


ABER, wieso bin ich wenn ich 1 Element nach vorne gehe am Ende(=start)

Das tempNode is doch hinten, und angenommen es sind 10 elemente in der liste. Wenn ich jetzt einen Schritt nach vorne bin ich doch sogesehen bei Element #9#
oder?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Elemente eine Liste im Ring schliessen Java Basics - Anfänger-Themen 9
E Ring Java Basics - Anfänger-Themen 11
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
B Wie zeichne ich ein Ring? Java Basics - Anfänger-Themen 2
L Stack bilden, push und pop Java Basics - Anfänger-Themen 16
Farbenfroh Methoden push, pop, top - Methoden Java Basics - Anfänger-Themen 4
S Push to Talk Java Basics - Anfänger-Themen 4
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
B Array push? Java Basics - Anfänger-Themen 3
N array -> push, pop, slice. Java Basics - Anfänger-Themen 13
A Stack, Frage zur Methode push Java Basics - Anfänger-Themen 4
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
thobren Object[][] Java Basics - Anfänger-Themen 8
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
N extends und super vs new object Java Basics - Anfänger-Themen 4
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
G Java Object value und entity? Java Basics - Anfänger-Themen 2
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Zugreifen auf Object[] Java Basics - Anfänger-Themen 4
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
A Object to Map Java Basics - Anfänger-Themen 2
D Object in ArrayList ausgeben Java Basics - Anfänger-Themen 24
L Input/Output Datei Object aus resources Java Basics - Anfänger-Themen 1
T HashSet in List-Object Java Basics - Anfänger-Themen 5
H Datentypen for(typ a : b) nur typ Object möglich ? Java Basics - Anfänger-Themen 2
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
T Object zu Char zu String Java Basics - Anfänger-Themen 6
Yamie ArrayList<Object> als Liste von Strings ausgeben? Java Basics - Anfänger-Themen 15
F Methoden Object.clone() Java Basics - Anfänger-Themen 1
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
F Unique Object Java Basics - Anfänger-Themen 3
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
Z Object Kreis am Frame abprallen lassen! Java Basics - Anfänger-Themen 12
O Object Java Basics - Anfänger-Themen 4
O nullpointerExce. Gui Object weitergabe Java Basics - Anfänger-Themen 12
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
J Object bestimmter Klasse Java Basics - Anfänger-Themen 3
F Object mit zwei Entities Java Basics - Anfänger-Themen 3
B Map, basic types & Object Java Basics - Anfänger-Themen 5
P Auf Object in Array Methode anwanden Java Basics - Anfänger-Themen 2
S Object Array Length via Konstruktor Java Basics - Anfänger-Themen 5
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
V Object in double? Java Basics - Anfänger-Themen 3
B Object in Array nach Prüfung löschen Java Basics - Anfänger-Themen 13
N Object mit String ansprechen Java Basics - Anfänger-Themen 7
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
B func(Object ....args) korrekt weitergeben Java Basics - Anfänger-Themen 4
M Object people[][] Daten hinzufügen Java Basics - Anfänger-Themen 3
T Input/Output Object Streams Java Basics - Anfänger-Themen 6
T Object[][] to String[][] Java Basics - Anfänger-Themen 8
T Object in Array Java Basics - Anfänger-Themen 3
T HashMap<String,Object> Werte auslesen Java Basics - Anfänger-Themen 5
H Object an methode Java Basics - Anfänger-Themen 4
D Object -> String Java Basics - Anfänger-Themen 6
W Compiler-Fehler "Could not reserve enough space for object heap"... und dann raucht das Programm ab Java Basics - Anfänger-Themen 3
D Datentyp Object Java Basics - Anfänger-Themen 2
B Object "Method" in TreeSet, Fehler beim Vergleichen/Comparable Java Basics - Anfänger-Themen 9
L Datentypen Object zu double zu int konvertieren Java Basics - Anfänger-Themen 6
M String to Object Java Basics - Anfänger-Themen 15
S Object Initialisierung Java Basics - Anfänger-Themen 7
H Object in einem .jar-File einlesen Java Basics - Anfänger-Themen 3
D Object oder Primitiv Java Basics - Anfänger-Themen 10
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7
W Main-method in Object-classes Java Basics - Anfänger-Themen 5
algebraiker TreeMap<Date,Object> navigieren? Java Basics - Anfänger-Themen 24
E Equals-Methode auf Class-Object Java Basics - Anfänger-Themen 17
C Typen aus List<Object[]> ändern Java Basics - Anfänger-Themen 7
C JComboBox setSelectedItem(Object) Problem Java Basics - Anfänger-Themen 5
B Methoden object = this; Java Basics - Anfänger-Themen 4
S Object Member<T> Klasse Java Basics - Anfänger-Themen 5
M Methode von einem Object überschreiben Java Basics - Anfänger-Themen 5
S Collections Aus Set<Object> bestimmte Typen entfernen Java Basics - Anfänger-Themen 3
M Variablen dynamisch variableninhalt von Object auslesen Java Basics - Anfänger-Themen 4
M Fehlermeldung: the method.... ist undefined for the type object Java Basics - Anfänger-Themen 6
R ArrayList(int index, Object) funktioniert nicht korrekt? Java Basics - Anfänger-Themen 7
C Bereits geöffnetes Object ermitteln Java Basics - Anfänger-Themen 5
N HashMap<String, Object> bei jre4 Java Basics - Anfänger-Themen 3
M object cast auf double Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben