【发布时间】:2021-04-11 18:02:00
【问题描述】:
这个过程Supprimerpremier 应该删除链表的第一个元素,方法是将头指针移动到第二个元素,然后处理第一个元素,它似乎不起作用。
我不知道为什么它不起作用;当我用程序显示列表时,列表仍然有 3 个元素。
提前致谢 =)
Program TP1;
Uses crt ;
Type
T = ^TT;
TT = Record //declaring my list
s: String;
n: Integer;
nxt: T;
End;
Var
x,p : T ;
Procedure Supprimerpremier (L : T); // procedure to delete the first element of my list
Var
x: T;
iptr: ^integer;
y: ^word;
Begin
x:=L;
L:=L^.nxt;
Dispose(x);
End;
Procedure Afficher (L :T); //prints the list
Var
x: T;
Begin
x := L;
While ( x^.nxt<> Nil ) Do //
Begin
Writeln;
Writeln;
Writeln(x^.s);
Writeln(x^.n);
x := x^.nxt;
End;
Writeln;
Writeln;
Writeln(x^.s);
Writeln(x^.n);
End;
//
Begin
new(p);
p^.n := 1111;
p^.s := 'iam the first element';
new(p^.nxt);
p^.nxt^.n := 222;
p^.nxt^.s := 'iam the second element';
new(p^.nxt^.nxt);
p^.nxt^.nxt^.n := 778;
p^.nxt^.nxt^.s := 'iam the third element ';
p^.nxt^.nxt^.nxt := Nil;
Supprimerpremier (p); //
Afficher (p);
end;
【问题讨论】:
-
请编写一个将值添加到列表尾部的过程。看到 p^.nxt^.nxt^.n = ...,我的眼睛很痛
标签: list delphi linked-list pascal