对于一个设有头指针和尾指针的单链表(对于一个设有头指针和尾指针的单链表结构)

对于一个设有头指针和尾指针的单链表(对于一个设有头指针和尾指针的单链表结构)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> 

讯享网
  • 本文参照严蔚敏《数据结构(C语言版)题集》一书中包含的问答题和算法设计题目,提供解答和算法的解决方案。
  • 请读者在自己已经解决了某个题目或进行了充分的思考之后,再参考本解答,以保证复习效果。
  • 由于作者水平所限,本解答中一定存在不少这样或者那样的错误和不足,希望读者们在阅读中多动脑、勤思考,争取发现和纠正这些错误,写出更好的算法来。

下列算法是从表中删除自第个元素起共个元素后,
将它们插入到表中第个元素之前。
试问此算法是否正确?若有错,则请改正之。

讯享网

解:
注意此题中的条件是,采用的存储结构(单链表)中无头结点,
因此在写算法时,特别要注意空表和第一个结点的处理。
算法中尚有其他类型的错误,如结点的计数,修改指针的次序等。
此题的正确算法如下:


讯享网

 

为了在函数中解决从无头链表中的首元开始,删除其中结点,
需要传入无头链表首元指针的地址,这样才可以让该指针指向新的首元。
在具体细节上,要注意的是:
首先过滤i值为0的情况,它不能等同于从第一个元素开始,也可被算作越界,
其次,当len值为0的时候,就不需要删除和插入了,直接返回OK。
此外,在测试函数中,会遇到:

讯享网

小讯
上一篇 2025-04-15 07:18
下一篇 2025-05-06 10:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/182068.html