AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu linearer Liste

Ein Thema von Churchy · begonnen am 1. Feb 2009 · letzter Beitrag vom 1. Feb 2009
 
Churchy

Registriert seit: 1. Feb 2009
7 Beiträge
 
#1

Frage zu linearer Liste

  Alt 1. Feb 2009, 10:30
Hi!
Da ich für meine mündliche Matura (=Reifeprüfung) ein Spezialgebiet mit dem Thema "Lineare Listen und Binäre Bäume" schreiben muss und da bisher lediglich das Einfügen funktioniert, dachte ich ich schau mal ob mir hier wer helfen kann, da ich auch keine Turtorials gefunden habe die mir weiter geholfen haben.

Ich habe bei jedem Button dazugeschrieben was dieser Button machen soll.
Hier ist der Quelltext:

Delphi-Quellcode:
unit Programm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  PListe = ^TListe; //Pointer deklariert

  TListe = record //Liste deklariert
    key: Integer;
    next: PListe;
    text: String;
  end;
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    Button2: TButton;
    Button3: TButton;
    Edit2: TEdit;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Liste: PListe;
  q: PListe;
  i: integer;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject); //Leere Liste
begin
  liste := nil;
  i:= 0;
end;

procedure TForm1.Button1Click(Sender: TObject); //Button für Listenerstellung am Kopf
begin
  new(q);
  i := i+1;
  q.text := edit1.Text;
  q.next := liste;
  q.key := i;
  liste := q;
end;

procedure TForm1.Button2Click(Sender: TObject); //Button für Listenausgabe
begin
  while liste <> nil do begin
    Listbox1.Items.Add(inttostr(liste.key) + ': ' + liste.text);
    liste := liste.next;
  end;
end;

procedure TForm1.Button4Click(Sender: TObject); // Button für Listenerstellung am Ende
var h:PListe;
begin
  i := i+1;
  if liste = nil then begin
    new(liste);
    liste.text := edit1.Text;
    Liste.key := i;
    Liste.next := nil;
  end else begin
  h := liste;
  while h.next <> nil do begin
    h := h.next;
  end;
  new(q);
  h.next:= q;
  q.text := edit1.Text;
  q.key := i;
  q.next := nil;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject); //vor Key hinzufügen
var x: integer;
begin
  x:= strtoint(edit2.Text);
  while liste <> nil do begin
    if liste.key <> x then begin
      liste :=liste.next;
    end else begin
      i := i+1;
      new(q);
      q := liste;
      liste.key := i;
      liste.text := edit1.Text;
      liste.next := q;
    end;
  end;
end;

procedure TForm1.Button5Click(Sender: TObject); //hinter Key hinzufügen
var x: integer;
begin
  x := strtoint(edit2.Text);
  while liste <> nil do begin
    if liste.key <> x then begin
      liste := liste.next;
    end else begin
      i := i+1;
      new(q);
      q.next := liste.next;
      liste.next := q;
      q.key := i;
      q.text := edit1.Text;
    end;
  end;
end;


procedure TForm1.Button6Click(Sender: TObject); //Key löschen
  var x: integer;
      h: Pliste;
begin
  x := strtoint(edit2.Text);
  while liste <> nil do begin
    if liste.key <> x then begin
      liste := liste.next;
    end else begin
      h := liste.next;
      liste.next := h.next;
      liste.text := h.text;
      liste.key := h.key;
    end;
  end;
end;

end.
Also zurück zu meiner Frage: Weiß jemand warum die Buttons "vor Key hinzufügen", "nach Key hinzufügen" und "Key löschen" nicht funktionieren?
(Ich habe deswegen den ganzen Quelltext kopiert damit ihr wisst wie ich bisher gearbeitet habe )
Ich hoffe auf baldige Antwort.
Mit freundlichen Grüßen
Churchy
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz