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