首页 » 列表构建于连续的内存块上

列表构建于连续的内存块上

如前所述,。这意味着列表中的所有项都彼此相邻存储。这种相邻存储方式对于列表索引等操作非常有效。

例如,通过 myList[2] 获取列表

中的第三个元素不会花费太多时间,因为 Python 知道在内存中搜索该元素的确切位置。这种内存布局也方便对列表进行切片操作。

连续的内存布局也是导致 .append() 操作

在列表中耗时更长的 顶级电子邮件列表 原因。当连续的内存块已满时,就需要一个新的内存块,这会使 .append() 操作耗时更长。

Dequeu 基于双向链表。就链表的结构而言,每个项都有自己的内存块以及对列表中下一个项的引用。双向链表也具有相同的特性,但有一个区别:每个项都既有对列表中下一个项的引用,也有对上一个项的引用。

因此,与其他类型的数据结构

相比,在链表的两端添加节点更容易。当你向链表添加新项时,你唯一需要做的就是将新项的引用设置为栈顶,然后将栈顶指向新项。

然而,这种在堆栈中添加 网红营销直接面向的是那些非 和 移 除元素的操作是有代价的。现在,当你需要从列表中获取第 4个元素时,它所花费的时间会比列表更长。这是因为现在 Python 必须遍历列表中的每个元素才能找到第四个元素。

幸运的是,这种随机切片和索引在栈上非常罕见。推送和弹出操作构成了栈的大部分操作。这也使得双端队列成为 Python 栈实现的最佳选择之一。

大批

对于 Stack 的不可 领导孟加拉国搜索引擎优化知实现,你必须使用数组。唯一的区别是,与列表不同,数组的大小是固定的。此外,数组还有一个顶部指针,用于跟踪堆栈的状态。以下是一个可用于使用数组实现 Python 堆栈的算法:

1. 第一步是声明一个名为 MaxSize 的整数,它表示堆栈的最大大小和一个列表。

滚动至顶部