Jas*_*n X 17 perl language-implementation data-structures
Perl数组是一种抽象数据类型.Perl数组的内部机制是什么?它是用动态数组还是链表实现的?由于数组元素具有随机访问权限,因此我假设一个动态的指针数组,或者对标量的引用是有意义的.但是,对于数组头部的移位和非移位操作,数组是否必须通过这些操作移动其所有元素?听起来对我来说效率低下.任何想法?
phi*_*mue 23
看看这个:http://www.perlmonks.org/?node_id = 17890
(从那里取:)
Perl使用数组和第一个/最后一个元素偏移实现列表.数组的分配大于所需的偏移量,最初指向数组中间的偏移量,因此在重新分配底层数组之前,在两个方向(未移位和推送/插入)都有增长的空间.这种实现的结果是所有perl的原始列表操作符(插入,获取,确定数组大小,推送,弹出,移位,非移位等)在O(1)时间内执行.
| 归档时间: |
|
| 查看次数: |
1925 次 |
| 最近记录: |