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
 
Klaus01

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

Re: Frage zu linearer Liste

  Alt 1. Feb 2009, 19:52
Habe mal einige Kommentare eingefügt.

Delphi-Quellcode:
    procedure TForm1.Button5Click(Sender: TObject); //hinter Key hinzufügen
var x: integer;
     templiste, q: PListe;
begin
  x := strtoint(edit2.Text);
  templiste := liste;

  // Was bezweckst Du hiermit?
  while templiste <> nil do begin
    // wenn temListe.key = x ist
    // dann wird an der aktuellen Position
    // ein Element eingefügt.
    // Soll das so sein?
    if templiste.key <> x then begin
      i := i+1;
      new(q);
      // wenn das neue Element an das Ende der Liste
      // angefügt wird, dann sollte q.next := nil
      q.next := templiste.next;
      templiste.next := q;
      q.key := i;
      q.text := edit1.Text;
    end;
    templiste := templiste.next;
  end;
end;
Eine Endlosschleife würde darauf hindeutem, dass in der Liste das letzte Element nicht auf nil zeigt.

Habe mal noch etwa nachgedacht.
Willst Du ein neues Element (q) vor bzw. nach einem bestehenden Element einfügen?
Wenn dem so sein sollte, dann solltest Du mehrere Fälle unterscheiden.

a) Du willst vor dem ersten Element ein Element einfügen,
dann ändert sich die Adresse des ersten Elementes (Ancker)
Delphi-Quellcode:
new(q);
q.next:=liste;
Ancker := q;
q...
b)Du willst nach dem letzen Element ein Element anhängen.
Delphi-Quellcode:
new(q);
q.next := nil;
liste.next := q;
q...
b) Du willst innerhalb der Liste ein Element einfügen
Dazu brauchst Du dann noch einen Buffer für das
Element vor dem aktuellen Element.
Delphi-Quellcode:
new(q);
buf.next := q;
q.next := liste;
q...

Grüße
Klaus
Klaus
  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 10:58 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