【发布时间】:2023-08-04 21:21:01
【问题描述】:
program uka3;
type
itemptr = ^item;
item = record
data: integer;
next: itemptr;
end;
var
first, tmp: itemptr;
n: integer;
begin
first := nil;
while not SeekEof do { Reading numbers }
begin
read(n);
new(tmp);
tmp^.data := n;
tmp^.next := first;
first := tmp;
end;
{ here i need loop that reverse number in right order }
tmp := first;
while tmp <> nil do { Output reversed numbers }
begin
writeln(tmp^.data);
tmp := tmp^.next;
end;
while first <> nil do { Free memory }
begin
tmp := first^.next;
dispose(first);
first := tmp;
end;
end.
这个程序读取数字并以相反的顺序输出它们。
我如何在读取这些数字后循环反转这些数字,以便它们按照写入的顺序排列?
【问题讨论】:
-
您可以将显示的数字存储到另一个堆栈中,然后显示该堆栈的内容 - 它们将以实际上是原始顺序的相反顺序再次出现。
标签: list pascal singly-linked-list freepascal