【发布时间】:2020-03-02 16:13:28
【问题描述】:
假设我有一个包含 100 个元素的链接列表。
struct node{
int data;
node*next;
}
我想访问 n 位置的一些元素,所以我必须做一个循环。如果我不遍历该链接列表,而是在获取输入/读取数据时将其数据元素存储在一个数组中,并且当我想在 n pos 处输出任何元素时,我可以调用 arr[n] 这样它是否更有效方法还是我应该使用循环。
【问题讨论】:
-
对于效率估计(时间),您需要计算程序应为操作执行的步骤数。对于
arr[n],它可能是 1,对于循环,它将是n步骤。请参考大O符号。 -
为什么不改用std::vector?或者,如果您坚持链接列表(但为什么?),那么至少使用std::list,不要自己滚动。
标签: c++ arrays performance linked-list