Hallo,
ich habe die folgende Prozedur, die mit Hilfe einer verketteten Liste ein neues Element hinzufügen soll. Allerdings macht er es nicht so wie ich es gerne hätte und er bricht immer ohne Fehlermeldung ab. Ich kenn mich nicht so toll mit Pointer aus, kann mir jemand vllt helfen?
Delphi-Quellcode:
procedure RQInsert(var Queue: TQueue; El: TValue; Prior: Integer);
var
NewEl: PRQueue;
begin
New(NewEl);
NewEl^.Value := El;
NewEl^.Priority := Prior;
NewEl^.Next := Nil;
if RQIsEmpty(Queue) then
begin
Queue.First := NewEl;
end;
Queue.Last^.Next := NewEl; // Hier wird abgebrochen
Queue.Last := NewEl;
end;
Delphi-Quellcode:
type
TValue = Integer;
PRQueue = ^TRQueue;
TRQueue = record
Value: TValue;
Priority: Integer;
Next: PRQueue;
end;
TQueue = record
First: PRQueue;
Last: PRQueue;
end;