L
lesi
Gast
guten abend,
ich stehe gerade auf dem schlauch, es waere sehr nett, wenn mir jemand mal beistand leisten wuerde.
ich habe soeben die u. zu sehende zirkulaere gelinkte liste implementiert. ich moechte einige testfaelle dazu schreiben, allerdings bin ich gerade nicht in der lage alle methoden so zu definieren, wie ich es mir wuensche.
die folgenden methoden, sind notwendig. wie implementiere ich diese in meiner double linked list?
- public Object getFirst()
- public Object removeFirst()
- public void clear()
- private void remove( Entry e )
dann noch eine weitere frage zu testfaellen.
bisher habe ich mir die folgenden testfaelle ueberlegt:
- testAdd (Einfaches inserten in die Liste)
- testEquals (Vergleichen von 2 Listen)
- testPeek
- testSize
- testIsEmpty
- test Iterator
fallen einem von euch evtl. noch weitere testfaelle ein, die auf u.g. anwendbar sind?
fuer jede hilfe dankt
lesi!
ich stehe gerade auf dem schlauch, es waere sehr nett, wenn mir jemand mal beistand leisten wuerde.
ich habe soeben die u. zu sehende zirkulaere gelinkte liste implementiert. ich moechte einige testfaelle dazu schreiben, allerdings bin ich gerade nicht in der lage alle methoden so zu definieren, wie ich es mir wuensche.
die folgenden methoden, sind notwendig. wie implementiere ich diese in meiner double linked list?
- public Object getFirst()
- public Object removeFirst()
- public void clear()
- private void remove( Entry e )
dann noch eine weitere frage zu testfaellen.
bisher habe ich mir die folgenden testfaelle ueberlegt:
- testAdd (Einfaches inserten in die Liste)
- testEquals (Vergleichen von 2 Listen)
- testPeek
- testSize
- testIsEmpty
- test Iterator
fallen einem von euch evtl. noch weitere testfaelle ein, die auf u.g. anwendbar sind?
fuer jede hilfe dankt
lesi!
Code:
public class List {
private Entry header;
private int size;
public List() {
header = new Entry(null,null,null);
}
public void addFirst( Object o ) {
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() {
return null;
}
public Object removeFirst() {
return null;
}
public int size() {
return size;
}
public boolean isEmpty(){
return size==0;
}
public void clear() {
}
private Entry addBefore( Object o, Entry e ) {
Entry newEntry = new Entry(o,e,e.previous);
e.previous = newEntry;
header.next=newEntry;
size++;
return null;
}
private void remove( Entry e ) {
}
public MyListIterator iterator() {
return new MyListIterator();
}
// 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
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