carookee - group communication for you
Home / JavaForum / Beginner
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.919 User online
1 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 2662 von 2963 (90%) |<   <   >   >|

Autor lesezeichen
Datum 10.04.05, 23:23
Betreff Doppeltverlinkte zirkuläre Liste - Code komment./Verständnis


Hallo Mitglieder des java-forums,

ich habe hier ein Verständnis-Problem und möchte einen etwas Erfahrerenen bitten den nachfolgenden Code zu kommentieren, damit ich im Gesamtzusammenhang begreifen kann, wie diese doppelt verlinkte zirkuläre Liste implementiert ist.

Ich wäre sehr verbunden, wenn sich jemand dieses Problem annehmen würde.

Gruss,
lesezeichen

----


Code:
public class List {
private Entry header;
private int size;

// Constructor for an empty list that only contains a dummy header element
public List() {
header = new Entry(null,null,null);

}

public void addFirst( Object o ) {
//to do:call the private method addBefore
if (size==0){
Entry newEntry = new Entry(o,null,null);
header.next = newEntry;
header.previous = newEntry;
newEntry.previous = newEntry;
newEntry.next = newEntry;
size++;
}
else{addBefore(o,header.next);}
}

public Object getFirst() {
//to do
return null;
}

public Object removeFirst() {
//to do
return null;
}

public int size() {
return size;
}

public boolean isEmpty(){
/*boolean empty;
if(size>=1)
empty=true;
else
empty=false;
return empty;*/
return size==0;
}


public void clear() {
//to do
}

// Return an iterator for the list
public MyListIterator iterator() {
return new MyListIterator();
}

// private methods
private Entry addBefore( Object o, Entry e ) {
//to do
Entry newEntry = new Entry(o,e,e.previous);
e.previous = newEntry;
header.next=newEntry;
size++;
return null;
}

private void remove( Entry e ) {

}

// Inner class MyListIterator
private class MyListIterator implements MyIterator {
private Entry tempHeader = header;

public boolean hasNext() {
if((header.next != null) && (tempHeader != header.previous)){
return true;
}
else
return false;
}

public Object next() {
tempHeader = tempHeader.next;//flaw
//tempHeader=header.next;
return tempHeader.element;
}

public boolean hasPrevious() {
if((header.previous != null) && (tempHeader != header.next)){
return true;
}
else
return false;
}

public Object previous() {
tempHeader = tempHeader.previous;
return tempHeader.element;
}
} // End of inner class MyListIterator


// Inner class Entry
private class Entry {
Object element;//actual data
Entry next;
Entry previous;

Entry( Object element, Entry next, Entry previous ) {
this.element = element;
this.next = next;
this.previous = previous;
}
} // End of inner class Entry

} // End of class List


Diskussionsverlauf:
Doppeltverlinkte zirkuläre Liste - Code komment./Verständnis
    Re: Doppeltverlinkte zirkuläre Liste - Code komment./Verständnis

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com