![]() |
lineare liste mit pointer
Hi,
ich versuche mich gerade an einer Linearen liste mit pointern... dafür habe ich mir ![]() und dementsprechend habe ich es so veruscht:
Delphi-Quellcode:
da ich das selbe wort wie im tutorial "pop" (markierte Zeile *1) benutzt habe funktioniert es natürlich nicht, aber meine frage ist, was ist diese Pop ? ist es die "wurzel" , die auf das 1. element zeigt oder was ?
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TDaten = integer; TToElement = ^TElement; TElement = record Daten : TDaten; ToNext: TToElement; end; TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; wurzel, ll:Ttoelement; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); {push} var Element: TToElement; begin New (Element); Element^.Daten := random(20)+1; Element^.ToNext:= ll; ll := Element; end; procedure TForm1.FormCreate(Sender: TObject); begin ll := nil; end; procedure TForm1.Button2Click(Sender: TObject); var Element: TToElement; begin pop := ll^.Daten; //<-------- *1 Element:= ll; ll := ll^.ToNext; Dispose (Element); end; end. Und was müsste ich dementsprechend abändern ? danke schomal im voraus ! |
Re: lineare liste mit pointer
Pop ist das entfernte erste Element der Liste, Das 2.Element wird dann erstes. Es scheint sich hier um eine Queue zu handeln.
Die variable Pop ist aber nicht deklariert, deshalb wird hier ein Fehler kommen. Außerdem machst du ja nichts damit, dann könntest du dir das Abspiechern des Elementes auch sparen. |
Re: lineare liste mit pointer
erstmal danke für die schnelle antwort !
also meine aufgabe ist es ansich eine lineare liste zu erstellen, wo man bei bedarf neue elemente hinzufügen kann... und am ende sollen diese dann alle ausgegeben werden... wie kann dies realisieren ? |
Re: lineare liste mit pointer
Evtl. hilft dir dies ja:
![]() Ich habe das ganze allerdings mit einem Internen dynamischen array gelöst. Alternativ könnte ich dir noch eine Implementierung anbieten, die auf zwei Stacks aufbaut (mussten wir mal in Informatik machen) Ist allerdings nicht mit Pointern. |
Re: lineare liste mit pointer
danke, aber ich bräuchte eine lösung mit pointern....
|
Re: lineare liste mit pointer
Dein Programm implementiert einen Art Stack (Keller). Was verstehst du unter einer "Linearen Liste", eine einfach verkettete Liste?
|
Re: lineare liste mit pointer
ja genau eine verkette liste von Records mit pointern.
|
Re: lineare liste mit pointer
Liste der Anhänge anzeigen (Anzahl: 1)
Schau dir mal die Liste bei mir im Anhang an, die haben wir im Unterricht verwendet. Ist etwas merkwürdig programmiert, aber sollte das sein, was du suchst.
Ich würde empfehlen nur das Prinzip abzuschauen und das Ding nochmal zu programmieren, denn einiges ist unschön gelöst und diesen Englisch-Deutsch-Mischmasch kann ich gar nicht ab. :D Edit: Records? Diese speichert alles was von TObject kommt... Aber Records wohl weniger? |
Re: lineare liste mit pointer
danke für die datei, aber irgendwie verstehe ich nicht, wie du es gelöst hast...
ja muss ja kein record sein, sonder egal was für ein datentyp... |
Re: lineare liste mit pointer
Wenn du eine einfach verkette Liste willst, dann mußt du nur die Funktion zum Anhängen ändern. Jetzt hängst du ja an den Anfang an.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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