AGB  ·  Datenschutz  ·  Impressum  







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

Liste mit Zeigern

Ein Thema von Damaster · begonnen am 21. Apr 2008 · letzter Beitrag vom 22. Apr 2008
Antwort Antwort
Seite 2 von 2     12   
Damaster

Registriert seit: 26. Nov 2007
14 Beiträge
 
#11

Re: Liste mit Zeigern

  Alt 21. Apr 2008, 21:16
ok
wieso heist es dan in dem fall nicht anker.naechster? anker ist vom typ pzeiger.
normal ist es doch der teil hinter dem punkt also ".naechster" der irgendwohin zeigt.
anker:=pak da wird ja noch der Stringteil mitübergeben, oder etwa nicht?
weiter unten hat Klaus ja list^.naechster:=dummy geschrieben. Wieso geht dann hier nicht anker^.naechster:=pak?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.862 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Liste mit Zeigern

  Alt 21. Apr 2008, 21:21
Weil das ein Zeiger auf den Nachfolger des Elements (also das 2. Element ist)
Zitat:
anker:=pak da wird ja noch der Stringteil mitübergeben, oder etwa nicht?
Nein der Zeiger Anker wird auf die Adresse gesetzt, welche auch pak referenziert.
Zitat:
weiter unten hat Klaus ja list^.naechster:=dummy geschrieben. Wieso geht dann hier nicht anker^.naechster:=pak?
Weil Amker Nil ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Damaster

Registriert seit: 26. Nov 2007
14 Beiträge
 
#13

Re: Liste mit Zeigern

  Alt 21. Apr 2008, 21:42
also ist anker einfach ein zeiger auf das erste element der liste. sprich den ersten datensatz an dea der zeiger auf das nächste element verknüpft ist.
Dann habe ich da wohl was falsch verstanden. jetzt ist mir auch klar warum ich immer solche dubiosen Fehlermeldungen hatte. Ich dachte immer ich muss anker^.z was zuordnen, wie jedem späteren Listenelement. Da programmiert man 2 Doppelstunden und fragt sich warum das nicht geht.
Naja danke an alle. Ich denke mit dem wissen sollte es mit ein wenig übung schon funktionieren.
  Mit Zitat antworten Zitat
Klaus01

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

Re: Liste mit Zeigern

  Alt 21. Apr 2008, 21:46
Zitat von Damaster:
..weiter unten hat Klaus ja list^.naechster:=dummy geschrieben. Wieso geht dann hier nicht anker^.naechster:=pak?
Ich habe da eine gesonderte Variable genommen, weil das Ankerelement nicht mehr verändert werden sollte
wenn es bereits Listenelemente gibt.
Der Anker wird beim ersten Element festgelegt.
Und wenn das letzte Element aus der Liste gelöscht wurde, wird
Anker wieder auf nil gesetzt.

Wenn ich die while Schleife mit Anker gemacht hätte,
wäre die Adresse von Anker verändert worden und der Listenanfang
wäre den Bach hinunter gegangen - die Folge davon sind dann
sogenannte Speicherlecks.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#15

Re: Liste mit Zeigern

  Alt 22. Apr 2008, 00:32
Nr. 1: solltest du deine proceduren/methoden mal benennen, damit man weiss was sich bspw. hinter button1 verbirgt.

Nr. 2: anlegen von knoten geht wie folgt:
NewNode := Node.create;
if anker = NULL then Anker.next := NewNode
else
begin
While anker.next <> NIL then ANKER := ANKER.next;
ANKER.next := newNode;
end;


Nr. 3: Löschen geht wie folgt:
temp:= Anker;
While ANKER.Next <> NIL do
begin
Temp := Anker;
ANKER := AnKER.next;
free(temp);
Temp := Anker;
end;
if temp <> NIL then free(anker)

Nr. 3: Traversieren;
Tmp := Anker.next;
While tmp <> NIL and not tmp.content <> content do
tmp := tmp.next;

ansonsten, machst du es deinem PC klar, was du von ihm willst, indem du es ihm kleinigkeit für kleinigkeit erklärst

<HTH>
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#16

Re: Liste mit Zeigern

  Alt 22. Apr 2008, 00:34
[quote="Klaus01"]Ich habe da eine gesonderte Variable genommen, weil das Ankerelement nicht mehr verändert werden sollte/quote]

Anmerkung: der anker darf nicht mehr verändert werden, ausser die liste ist aufgelöst. ansonsten ist der anker untouchable.

<HTH>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 04:50 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 by Thomas Breitkreuz