首页 技术 正文
技术 2022年11月15日
0 收藏 567 点赞 4,442 浏览 490 个字

  这里不讨论具体的实现细节,主要是转载这篇文章: 顺序表的原理与python中的list类型

原文就不贴过来了,总结一下:

  1. 确定数据类型的意义在于确定一个数据在内存中占据的空间大小以及如何解释一段内存的含义;
  2. 同类型数据在内存中连续存储时采用固定的偏移量来定位;
  3. 不同类型数据需要采用元素外置的方式,在顺序表里面只存储外置元素的指针;
  4. 顺序表需要保存【容量】以及【已占用】数据,这个“表头”可以放在顺序表中,也可以分离出来;
  5. 当顺序表的容量不够或者过多时,会自动扩容或者缩容。

再回到作者的结论:

list有以下几个特点:

1.元素有位置下标,以索引就可以直接取到元素  –>  连续的存储空间,以偏移量计算取得元素,不必遍历所有元素

2.元素无论如何改变,表对象不变,也就是其id不变  –>  分离式结构,表头和元素内容分开储存,这样在更改list时,表对象始终是同一个,只是其指向的地址不同

3.元素可以是任意类型  –>  既要要求是连续存储,又可以存储不同类型的数据,那么其用的就是元素外置的方式,存储的只是地址的引用

4.可以任意添加新元素  –>  要能不断地添加新元素,其使用了动态扩充的策略

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,942
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,468
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,281
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,096
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,728
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,765