gpt4 book ai didi

algorithm - 链表二进制插入排序,错误 216,有时有效

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:23 24 4
gpt4 key购买 nike

我正在尝试在链表中实现二进制插入排序。该程序编译良好,大约每三次运行一次。它抛出错误 216 - 一般保护错误(可能取消引用 nil 指针)。这不是我第一次在 Pascal 中使用链表时遇到这个问题,但我仍然不知道是什么原因造成的,以及为什么有时有效有时无效。感谢您的任何建议。

代码示例是 here

编辑:罪魁祸首必须在这个 while 循环中的某个地方:

while (y^.next <> original.tail) do begin
y:=original.takeOutFirst;
l := 1; r := i-1;
while (l<=r) do begin
m := (l+r) div 2;
x := sorted.itemNumber(m);
if x^.data > y^.data then r:= m-1
else l:=m+1
end;
x := sorted.ItemNumber(l);
sorted.insertInsteadOf(x, y);
inc(i);

结束;

最佳答案

在示例中,在第 13 行,我将 i:=2 更改为 i:=1,代码奇迹般地工作了。为什么?!

关于algorithm - 链表二进制插入排序,错误 216,有时有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24186153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com