Zum Inhalt springen

Hilfe bei Java-Übung


dic

Empfohlene Beiträge

ich bin hier am java lernen und habe hier folgende aufgabe zu lösen:

wir gehen davon aus, dass objekte, die die schnittstelle comparable implementieren, eine funktion compareTo() besitzen, die einen vergleich zweier objekte erlaubt.


Public interface comparable{

     /**

     * @return -1 wenn empfängerobjekt < other, +1 wenn > und 0 wenn ==

     */

     public int compareTo (Object other);

}
die folgende doppelt verkettete liste sei so aufgebaut (repräsentationsvariante), dass die listenelemente stets aufsteigend sortiert sind. die interessanten teile der klasse sehen wie folgt aus:
Public class list{

     Private static class Node{   // knotenklasse

          combarable value;       // inhalt eines knoten

          Node previous;          // referenz auf den vorgänger

          Node next               // referenz auf den nachfolger

     }


private Node first;       // referenz auf den ersten knoten

private Node last; 	  // referenz auf den letzten knoten

}
a) schreibe eine methode, die feststellt, ob ein object in der liste enthalten ist und je nach dem true oder false zurückgibt. B) schreibe eine methode, void insert(comparable x), die das objekt x an der richtigen stelle einfügt.
zu a) lautet meine antwort:
public boolean contains (object o){

     Node p=first;

     while((p.next != null) || (p.compareTo(o)==0))

          p=p.next;

     return (p!=null);

}
und zu B) so:
public void insert(combarable x){

     Node p=first;

     Node q=(Node)x;

     while(p.compareTo(q)==-1)

          p=p.next;

     q.previous=p;

     p.next.previous=q;

     q.next=p.next;

     p.next=q;

}

ist das so in ordnung?

bin für konstruktive beiträge dankbar! :)

grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke, für die zügige antwort! :)

verbesserung zu a)

public boolean contains (object o){

     Node p=first;

     while(p.next!=null)

          if (p.compareTo(o)==0)

               return true;

          else

               p=p.next;

     return false;

}

hier bricht er dann rechtzeitig ab.

ist der rest denn so in ordnung gewesen?

grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

ein kleine verbesserung ist es doch schon. er muss doch nun nicht mehr bis ans ende laufen.

aber nun u.u. auch gar nicht mehr laufen... oder? :)

public boolean contains (object o){

     Node p=first;

     while(p.next!=null || p.compareTo(o)==1)  // 1, wenn empfängerobjekt > o

          if (p.compareTo(o)==0)

               return true;

          else

               p=p.next;

     return false;

}

grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...