J
jefo
Gast
Hallo,
wer kann mir helfen bei der Implementierung von doppelt...
Was soll dieser Rückgabewert List? List ist doch interface.
ich weiss wir haben es schon 1000 mal gemacht aber trotzdem interessiert mich es mit dem Interface.
ich habe es versucht aber habe feststellen müssen, dass anstatt PList List Rückgabetyp ist. das verwirrt mich nur.
wer kann mir helfen bei der Implementierung von doppelt...
Was soll dieser Rückgabewert List? List ist doch interface.
ich weiss wir haben es schon 1000 mal gemacht aber trotzdem interessiert mich es mit dem Interface.
Code:
interface List {
int len(); // liefert die Laenge der Liste
boolean isempty(); // prueft, ob die Liste leer ist
Object first(); // liefert das erste Element der Liste
Object last(); // liefert das letzte Element der Liste
List rest(); // liefert die Liste ohne das erste Element
void append(Object o); // haengt ein Objekt an das Ende der Liste an
void print(); // gibt die Elemente mit Hilfe der toString()-Methode aus
List remove(Object o); // entfernt alle Objekte o aus der Liste und liefert diese
// Liste als Ergebnis
List removeLast(Object o, int n);
// entfernt die letzten n Vorkommen von Objekten o aus der
// Liste und liefert die Liste als Ergebnis. Sind weniger
// als n Vorkommen von Objekten o in der Liste enthalten,
// stimmt die Semantik des Aufrufs von
// removeLast(Objekt o, int n) mit derjenigen von
// remove(Object o) ueberein.
}
Code:
class Test {
public static void main(String[] argf) {
Test.test(new PList());
}
static void test(List l) {
// Liste aufbauen
for (int i=0; i<6; i++) l.append(new Integer(i));
l.append(new Integer(2));
l.append("Hallo World");
// Liste ausgeben
l.print();
System.out.println();
// Bis zu 3 Integerzahlen mit Wert 2 loeschen und Liste ausgeben
//l.removeLast(new Integer(2), 3);
//l.print();
System.out.println();
// Alle Vorkommen von ’Hallo World’ loeschen, Floats hinzufuegen
//l.remove("Hallo World");
for (int i=0; i<4; i++) l.append(new Float(i/0.008));
// Ausgabe der enthaltenen Elemente ueber l.first()
while (!l.isempty()) {
System.out.println(l.first().toString());
//l = l.rest();
}
}
}
Implementieren Sie die Schnittstelle List in einer Klasse PList als doppelt
verkettete Liste so, dass das Programm test.java
folgende Ausgabe liefert:
0
1
2
3
4
5
2
Hallo World
0
1
3
4
5
Hallo World
0
1
3
4
5
0.0
125.0
250.0
375.0
ich habe es versucht aber habe feststellen müssen, dass anstatt PList List Rückgabetyp ist. das verwirrt mich nur.
Code:
class PList implements List{
private PList vorcheriger;
private PList naechster;
private PList first;
private Object o;
public PList(){
first = null;
}
private PList(Object o){
this.o = o;
}
public boolean isempty(){
return(first == null);
}
public void append(Object o){
PList neu = new PList(o);
neu.naechster = first;
neu.vorcheriger = null;
if(neu.naechster != null){
PList temp = neu.naechster;
temp.vorcheriger = neu;
}
first = neu;
}
public Object first(){
return(first.o);
}
public void print(){
PList aktuell = first;
while(aktuell != null){
aktuell.toString();
}
}
int len(){
}
Object last(){
blabla
}
List rest(){
blabla
}
List remove(Object o){
blabla
}
private List removeLast(Object o, int n){
blabla
}
}