kostenloser Webspace werbefrei: lima-city


ADT Liste

lima-cityForumProgrammiersprachenDelphi & Pascal

  1. Autor dieses Themas

    myiceteaplanet

    myiceteaplanet hat kostenlosen Webspace.

    Hi Leute,
    ich will für einen Vortrag @school nen Programm schreiben, das die Funktionsweise einer ADT-Liste simuliert.
    Nur Leider scheint nicht alles so zu funktionieren, wie es soll. Um genau zu sein, passiert nichts.
    Hier der Code:

    procedure refresh(); //Aktualiesieren der Listbox (mit Liste abgleichen)
     var i: integer;   //Zählvariable für Schleife
    begin
      Listbox1.clear;
      list.findfirst;
      for i:=1 to list.count do
       begin
        Form1.Listbox1.items.Add(inttostr(list.get));
        list.findnext;
       end;
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     list:=tliste.create;
    end;
    
    procedure TForm1.Button1Click(Sender: TObject);
     var zahl: integer;
    begin
       list.findfirst;
     try
       zahl:=strtoint(edit1.text);
       if radiobutton1.Checked then
          list.putbehind(zahl)
        else
         list.putbefore(zahl);
     except
       showmessage('Ungültige Eingabe!');
     end;
     refresh;
    end;


    und die Klasse TListe ist so deffiniert:

    unit liste2;
    
    interface
    
    type pzeiger=^tElement;
         tElement=record
                    next:pZeiger;
                    inhalt:integer;
                  end;
         tListe=class
          private
                  anfang:pZeiger;
                  aktuell:pZeiger;
                  zahl:Integer;
    
          public
    
    
           constructor create();
           function get():integer;
           procedure putbehind(var Inh:integer);
           procedure putbefore(var  Inh:integer);
           procedure delete();
           function empty():BOOLEAN;
           function full:BOOLEAN;
           function count():Integer;
           function last():Boolean;
           procedure findfirst();
           procedure findnext();
           end;
    
    implementation
    
    constructor TListe.create;
    BEGIN
      inherited create;
      anfang:=NIL;
      aktuell:=NIL;
      zahl:=0;
    END;
    
    PROCEDURE TListe.putbehind;
    VAR neu:pZeiger;
    BEGIN
      NEW(neu);
      neu^.Inhalt:=Inh;
        IF empty() THEN BEGIN
          anfang:=neu;
          neu^.next:=NIL;
        END
        ELSE
          BEGIN
            neu^.next:=aktuell^.next;
            aktuell^.next:=neu;
          END;
        aktuell:=neu;
        zahl:=zahl+1;
    END;
    
    PROCEDURE TListe.putbefore;
    VAR neu,lauf:pZeiger;
    BEGIN
      NEW(neu);
      neu^.Inhalt:=Inh;
        IF aktuell=anfang THEN
          anfang:=neu
        ELSE
          BEGIN
            lauf:=anfang;
            WHILE lauf^.next<>aktuell DO
              lauf:=lauf^.next;
            lauf^.next:=neu;
          END;
        neu^.next:=aktuell;
        aktuell:=neu;
        zahl:=zahl+1;
    END;
    
    
    PROCEDURE TListe.delete;
    VAR lauf:pZeiger;
    BEGIN
        IF aktuell=anfang THEN
          anfang:=anfang^.next
        ELSE
          BEGIN
            lauf:=anfang;
            WHILE lauf^.next<>aktuell DO
              lauf:=lauf^.next;
            lauf^.next:=aktuell^.next;
          END;
        DISPOSE(aktuell);
        aktuell:=anfang;
        zahl:=zahl-1;
    END;
    
    function TListe.get():integer;
    BEGIN
      result:=aktuell^.Inhalt;
    END;
    
    FUNCTION TListe.empty;
    BEGIN
      empty:=anfang=NIL;
    END;
    
    FUNCTION TListe.full;
    BEGIN
      full:=SizeOf(tElement)>AllocmemSize;
    END;
    
    FUNCTION TListe.count;
    BEGIN
      count:=zahl;
    END;
    
    FUNCTION TListe.last;
    BEGIN
      Last:=aktuell^.next=NIL;
    END;
    
    PROCEDURE TListe.Findfirst;
    BEGIN
      aktuell:=anfang;
    END;
    
    PROCEDURE TListe.Findnext;
    BEGIN
      aktuell:=aktuell^.next;
    END;
    
    
    BEGIN
    END.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Also es wäre schön, wenn du erstmal beschreiben könntest,
    was genau nicht funktioniert, d.h.:
    Eingabe, erwartete Reaktion, das was wirklich passiert, eventuelle Fehlermeldungen etc.
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!