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
Antwort Antwort
Seite 1 von 2  1 2      
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
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 10:52
WAS funktioniert denn nicht? Fehlermeldung? Tut was, aber nicht so wie gewünscht? Passiert garnix?

Würde die Fehlersuche etwas eingrenzen
  Mit Zitat antworten Zitat
Churchy

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

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 11:01
Es passiert gar nichts.
Keine Fehlermeldung kein gar nichts.
Würd mich ja über ne Fehlermeldung freuen so könnt ich wenigstens explizit nach dem Fehler suchen, aber so habe ich keine Ahnung, da ich mir auch aufgezeichnet habe was passiert und irgendwie müsste es so funktionieren, aber das tut es nicht. : - /
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 11:24
    liste := liste.next; du solltest bei deinen Schleifen nicht die "Start"-Variable nutzen, denn so änderst du diese und deine List verschwindet, da diese Variable danach auf nil steht

Delphi-Quellcode:
templist := liste;
while templiste <> nil do begin

  templiste := templiste.next;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 11:29
... und noch das Zeigertutorial vom Ghostwalker

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Churchy

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

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 12:03
Zitat von Klaus01:
... und noch das Zeigertutorial vom Ghostwalker

Grüße
Klaus
Thx für das Tut.
Werd mal das versuchen was ihr beiden über mir gesagt habt.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 12:19
dann eben nicht... [Anhang gelöscht]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#8

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 13:02
@omata: es wäre schon nett, wenn du wenigstens kurz sagen könntest, was in deinem Anhang drin ist.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#9

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 15:53
Zitat von omata:
dann eben nicht... [Anhang gelöscht]
Lol?! Was geht eigentlich mit dir ab? Spielst du jetzt "bei jedem Wort beleidigte Leberwurst"
  Mit Zitat antworten Zitat
Churchy

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

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 17:34
Ähm ja O.o
Also so weit hab ichs ja wies in diesem Tut steht eigtl. (ja schon oben) und was genau das templiste bringen soll versteh ich nicht :-/
Muss ich dabei sämtliche Liste in templiste umschreiben oder nur die in den Schleifen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:00 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