AGB  ·  Datenschutz  ·  Impressum  







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

Einfach Verkettete Liste

Ein Thema von Stillmatic · begonnen am 12. Jun 2007 · letzter Beitrag vom 21. Jun 2007
Antwort Antwort
Seite 2 von 3     12 3      
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#11

Re: Einfach Verkettete Liste

  Alt 13. Jun 2007, 11:55
Nimm doch einfach meine Prozeduren...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#12

Re: Einfach Verkettete Liste

  Alt 13. Jun 2007, 11:58
Da bekomme ich aber die selben Fehler!
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#13

Re: Einfach Verkettete Liste

  Alt 13. Jun 2007, 12:50
Bei diesem Verfahren wird das neue Element an erster Stelle geschrieben und alle anderen einen nach unten gesetzt!
Delphi-Quellcode:
Procedure AddToList (aNodeInfo : TInfo);
Var
  p : PLinkedList;

Begin
  New (P);
  p^.llData := aNodeInfo;
  p^.llNext := HEAD^.llNext;
  Head^.llNext := p
End;
Wie kann man das ganze jetzt so umdrehen das, das neue Element an das Ende geschrieben wird?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Einfach Verkettete Liste

  Alt 13. Jun 2007, 13:15
Hallo,

schreib dir eine Methode,
die den letzten Eintrag sucht
(das ist der mit Next=NIL),
erzeuge einen neuen Koten, setze dort Next auf NIL
und setzen Next des (gerade gefundenen) Knoten auf
deinen neu erzeugten.


Heiko
Heiko
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#15

Re: Einfach Verkettete Liste

  Alt 18. Jun 2007, 18:28
Was ist eigentlich der Unterschied zwischen

p^.llData := aNodeInfo;
p^.llNext := HEAD^.llNext;
Head^.llNext := p

und

p.llData := aNodeInfo;
p.llNext := HEAD.llNext;
Head.llNext := p

Also meine Frage ist wofür ist dieses "^" Zeichen nötig???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Einfach Verkettete Liste

  Alt 18. Jun 2007, 18:39
Das ^-Zeichen hinter einer Zeigervariablen steht für Dereferenzierung, d.h. es ist nicht der Zeiger an sich gemeint, sondern die dahinter liegenden Daten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#17

Re: Einfach Verkettete Liste

  Alt 18. Jun 2007, 18:42
Aber unbedingt hischreiben muss man es nicht??

Ist also eher ein Zeichen zur verdeutlichung, oder???
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Einfach Verkettete Liste

  Alt 18. Jun 2007, 18:44
Zitat:
Delphi-Quellcode:
p^.llData := aNodeInfo;
p^.llNext := HEAD^.llNext;
Head^.llNext := p
Besitzt ein Zeiger die Felder llData und llNext?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#19

Re: Einfach Verkettete Liste

  Alt 19. Jun 2007, 08:05
Hi.

Das ^ Zeichen dereferenziert einen Zeiger: Wenn P ein Zeiger auf einen Record 'TMyRecord' ist (also P ist nur eine Adresse), dann bezeichnet 'P^' das, worauf P zeigt, in diesem Fall den Record 'TMyRecord'.

Also würde eigentlich 'P.bla' keinen Sinn ergeben. Nun ist der Delphi-Compiler ja nett zu uns und verzeiht einige Tippfehler, weswegen er das '^' nach dem P dazudichtet.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Stillmatic

Registriert seit: 25. Apr 2007
110 Beiträge
 
#20

Re: Einfach Verkettete Liste

  Alt 21. Jun 2007, 17:43
Ich habe schon wieder ein derbes Problem!!

Ich möchte eine Liste füllen!
Als erstes wird die Funktion ListFüllen aufgerufen, in der dann ein neues Element gefüllt wird durch den Aufruf der Function NewOneListElement.
In der While Schleife suche ich die Dateinamen die in First(noch eine Liste) gespeichert sind heraus und schneide die Dateierweiterung(.txt) ab. Die einzelnen Dateinamen ohne Extension werden dann in einem String gespeichert, den ich nachher als Titel benutze.

Mein Problem liegt aber darin das an der Stelle {Ausgabe.Id := PPointers;} in der Function NewOneListElement einfach in der List ein Wert verändert wird obwohl ich an der Stelle garnix mit der List mache!

Ich kann mir das nicht erklären!!!!

Delphi-Quellcode:
function ListFüllen :POnelist;
var temp : PDatensatz;
    Name : String;
 Ausgabe : POnelist;
Begin
  Name := '';
  temp := first;
  //Neues Element anlegen und Füllen
  Ausgabe := NewOneListElement;
    while temp <> Nil do
     Begin
       Name := Name + ExtractFileName(temp.info.Titel);
       Name := StringReplace(Name, '.txt','',[]);
       temp := temp.next;
     end;
    Ausgabe.Titel := Name;
    //Ausgabe an das ende der Liste anfügen
    Ausgabe.next := List;
    List := Ausgabe;
    ListFüllen := List;
end;

Delphi-Quellcode:
function NewOneListElement; :POnelist;
var Ausgabe : POnelist;
Begin
  new(Ausgabe);
  Ausgabe^.next := Nil;
  Ausgabe^.daten := first;
  inc(PPointers);
  Ausgabe.Id := PPointers; //genau an dieser Stelle tritt der Fehler auf!!//
  NewPlayElement := Ausgabe;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:23 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