List 如何在Pascal中反转单链表? 程序uka3; 类型 itemptr=^item; 项目=记录 数据:整数; 下一步:itemptr; 结束; 变量 首先,tmp:itemptr; n:整数; 开始 第一:=零; 而不是寻找{读取数字} 开始 读取(n); 新的(tmp); tmp^.数据:=n; tmp^.next:=第一; 第一:=tmp; 结束; {这里我需要按正确的顺序循环那个倒数} tmp:=第一; 而tmp nil do{Output reversed numbers} 开始 书面(tmp^.数据); tmp:=tmp^.next; 结束; 而第一个nil do{Free memory} 开始 tmp:=第一个^下一个; 处置(第一); 第一:=tmp; 结束; 结束。
这个程序读取数字并以相反的顺序输出List 如何在Pascal中反转单链表? 程序uka3; 类型 itemptr=^item; 项目=记录 数据:整数; 下一步:itemptr; 结束; 变量 首先,tmp:itemptr; n:整数; 开始 第一:=零; 而不是寻找{读取数字} 开始 读取(n); 新的(tmp); tmp^.数据:=n; tmp^.next:=第一; 第一:=tmp; 结束; {这里我需要按正确的顺序循环那个倒数} tmp:=第一; 而tmp nil do{Output reversed numbers} 开始 书面(tmp^.数据); tmp:=tmp^.next; 结束; 而第一个nil do{Free memory} 开始 tmp:=第一个^下一个; 处置(第一); 第一:=tmp; 结束; 结束。,list,pascal,singly-linked-list,freepascal,List,Pascal,Singly Linked List,Freepascal,这个程序读取数字并以相反的顺序输出 如何在读取这些数字后在循环中反转这些数字,以便它们按照写入顺序进行?下面是一个反转列表的过程。简单地用ReverseList(第一个)来称呼它 程序反向列表(变量列表:itemptr); 当前风险值,上一个,下一个:项目PTR; 开始 上一个:=零; curr:=列表; 而curr nil do 开始 下一步:=当前^next; curr^.next:=上一个; 汇率:=当前汇率; curr:=下一个 结束; 列表:=上一个 结束 您可以将显示的数字存储到另一
如何在读取这些数字后在循环中反转这些数字,以便它们按照写入顺序进行?下面是一个反转列表的过程。简单地用ReverseList(第一个)来称呼它
程序反向列表(变量列表:itemptr);
当前风险值,上一个,下一个:项目PTR;
开始
上一个:=零;
curr:=列表;
而curr nil do
开始
下一步:=当前^next;
curr^.next:=上一个;
汇率:=当前汇率;
curr:=下一个
结束;
列表:=上一个
结束
您可以将显示的数字存储到另一个堆栈中,然后显示该堆栈的内容-它们将以与原始顺序相反的顺序再次显示出来。bro我有一个单独的链表)我用另一个堆栈将其反转stack@17seanReverseList需要一个链接列表。这是反转单个链接列表最有效的方法。
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.
procedure ReverseList(var list: itemptr);
var curr, prev, next: itemptr;
begin
prev := nil;
curr := list;
while curr <> nil do
begin
next := curr^.next;
curr^.next := prev;
prev := curr;
curr := next
end;
list := prev
end