至少有两种方式来表示链表:
1.)使用基于数组的链表表示,我们在其中保留std::vector
类型的结构
struct {
<whatever-type-you-want> item ;
int nextitem;
}
这里插入到列表中,是在向量上执行 push_back() 并为下一项提供适当的值。
2)在其中你有一个遍布 RAM 的结构集合。此处插入是使用 C++ 运算符完成的new
。
是否正确地说,第一种方法更有效,因为所有项目都位于内存中的连续位置,因此可以将链表增长到比第二种方法大得多的大小
在第二种方法中,可能存在带有巨大链表的内存碎片,因为这可能会更早地出现分段错误。