![]() |
1
18
是的,有。。。这称为内存池。类似于线程池。基本上,在Node类型的程序开始时分配一个内存区域。指向此区域的指针存储在数组中。在cons函数中,只需从数组中获取指针。这不会提高总体速度,但如果频繁分配内存,则会增加程序的响应速度,但会为数组占用一些空间 |
![]() |
2
11
很快附加到链表?A rope |
![]() |
3
5
什么操作应该是快速的:插入,检索,全部?总有一种取舍。您的解决方案是否需要可扩展?不支持链表。 如果您想/需要粘贴到一个链表,您可以将它存储到一个结构数组中,该数组中有一个字段指示链表中下一个条目的索引。插入将非常快,没有任何分配,缺点是您必须提前知道元素的数量—或者在表满时重新分配表。 请参阅“ 使用节点数组的链表 the Wikipedia page on linked list . |
![]() |
4
3
撇开内存方面的问题不谈,还有一些关于加快单链接列表速度的想法。
大多数实现都有一个
列表插入必须连接指针。为了简单地添加节点(并且忽略添加有效载荷),如果节点在列表的头部或尾部,则有1个分配,并且如果它在中间,则有2个分配。没有什么办法可以绕过这个问题。
通过将其实现为跳过列表,可以更快地进行遍历( http://en.wikipedia.org/wiki/Skip_list |
![]() |
5
2
如果您关心malloc碎片,您可以请求一个大的倍数大小的节点,并在每次复制节点值时保持按sizeof(Node)递增指针。 |
![]() |
6
2
|
![]() |
7
0
|
![]() |
8
0
|
![]() |
GabrielChu · 如何释放带有指针的链表 7 年前 |
|
Link · 向链表中添加结构似乎不起作用 7 年前 |
![]() |
Jheel rathod · 带有构造函数的ocaml递归类型记录 7 年前 |
![]() |
amr125 · 在链表中插入元素-索引不存在 7 年前 |
![]() |
JOSI · 求职面试的基本内容-使用链表、数组 7 年前 |
![]() |
Sikorski · 是否有必要对仅用于删除操作的列表进行同步 7 年前 |
![]() |
Pushkar Mahajan · 如何避免分段核心转储错误? 7 年前 |