Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterschied zwischen drei Pointerketten-Typen (https://www.delphipraxis.net/3436-unterschied-zwischen-drei-pointerketten-typen.html)

VeeJay 12. Mär 2003 15:52


Unterschied zwischen drei Pointerketten-Typen
 
Hallo Leute,
ich schreibe wieder mal eine tolle Informatikklausur und wäre für eure Hilfe bei dieser Aufgabe echt dankbar. Also, ich habe 3 Interfaces vorgegeben und soll die Unterschiede zwischen ihnen und ihre Vor- und Nachteile sammeln. Allerdings sehen die für mich größtenteils gleich aus. Wäre cool, wenn ihr mich aufklären könntet 8)

1.Interface: "Dynamische Liste"

Delphi-Quellcode:
Unit Liste;
//Das Objekt LISTE mit allen Methoden:      
Interface
TYPE TElement = string;
     //Listentyp als dynamisch verkettete Zeiger:
      pListe = ^Knoten;
      Knoten = RECORD
                     element : TElement;
                        nach : pListe;
           END;
     //Das Objekt Liste mit allen Methoden:
     TListe = class (TObject)
             anfang : pListe ;
             aktuell : pListe ;
        Constructor create;
           {Erzeugung der leeren Liste. ( WICHTIG!)}
        procedure insert (ein:TElement);
           {Vor das akt.Element wird ein El.eingefügt.}
        procedure delete;
            {Das akt.Element wird gelöscht.}
        procedure reset ;
            {Das akt.Element wird auf den Anfang gesetzt.}
        procedure next ;
            {Der Aktuellzeiger wird versetzt.}
        procedure show(Var aus:TElement);
            {Das akt. Element wird an die Var.aus übergeben}
        procedure update(aend :TElement);
            {Das akt.Element wird überschrieben.}
        procedure last(ein: TElement);
            {Hängt ein neues Element am Ende an.}
        function empty : boolean;
            {Liefert true, wenn Liste leer}
        function ende : boolean;
            {Liefert true, wenn Listenende erreicht.}
     End;
2.Interface: "Schlange"

Delphi-Quellcode:
unit Schlange;
 //Hier wird das Objekt Schlange definiert:    
interface

  TYPE       TElement = String;

 //Der Datentyp Schlange als Zeigerkette:
    pSnake     = ^TKnoten;
    TKnoten  = RECORD
                  inhalt : tElement;
                  next  : pSnake;
                END;
 //Das Objekt Schlange mit allen Methoden:
    TSchlange = class (TObject)
                anf, ende : pSnake;
          constructor create;
          function empty:boolean;
          function show :TElement;
          procedure insert (x:TElement);
          End;
3.Interface: "Keller"

Delphi-Quellcode:
 unit Keller;
// ADT Keller    
interface

TYPE
     TElement = String;
 // Der Datentyp Keller als Zeigerkette:
     pKeller = ^knoten;
     knoten   = RECORD
                   element : TElement;
                   next   : pKeller
                 END;
//Das Objekt Keller mit allen Methoden:
     TKeller = class (TObject)
              pTop  : pKeller;
     Constructor create;
     Function empty : boolean;
     PROCEDURE insert (x : telement);
     Function show: TElement;
     END;
Danke! :spin:

jbg 12. Mär 2003 16:40

Da keine Implementierung der Methoden vorhanden ist, wäre ich so Frech und würde hinschreiben, dass bis auf den Schreibaufwand kein Unterschied bestehen muss. Denn wer sagt denn, dass die Methoden nicht leer sind?

Das würde dir neben einer 6 auch noch ein Statement des Lehrers bescheren, also hier das was der Lehrer wahrscheinlich sehen will.

Zu Schlange und Keller
Da im Interface Schlange neben dem Feld anf/pTop auch das Feld ende vorhanden ist, kann das Einfügen (insert) schneller von statten gehen, da nicht erst die gesamte Liste durchlaufen werden muss.

Zu TListe
TLIste besitzt neben dem Feld Anfang auch das Feld Aktuell, das die anderen beiden nicht besitzen. Es besteht also die Möglichkeit, auf den aktuellen Knoten zuzugreifen und einen neuen aktuellen Knoten auszuwöhlen. Um an das Listenende zu gelangen muss jedoch von der aktuellen Position aus das Listenende gesucht werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz