Python数据结构与算法之 顺序表的结构与实现
2020-03-11 13:11
387 查看
顺序表存储四个整形。以32位操作系统为例,按字节寻址,需要16个字节。
4Byte = 32位
0x23 | 200 |
---|---|
0x27 | 390 |
0x31 | 78 |
0x35 | 12112 |
基本的顺序存储表:
Li[0] --> 0x23 --> 200
Li[3] --> 0x23 + 3*4Byte --> 12112
为什么list要从0开始? 序号相当于偏移量,便于查找。List[0]表示存储首地址偏移0;
为什么能通过偏移量的大小去寻找数据?因为所有数据的类型都相同。
然而下面的list,采用上面的方式存储就行不通了。
li = [1234, "ab"]
元素外置的顺序表:
- 把数据放到随机分配的地址存起来。
- 再申请16Byte的连续存储空间存放之前随机分配的地址。
li[0] = 0x324 -->0x100 --> 12。
内存:
内存是一个一个连续的存储单元标识的,8位一个字节。
对于内存中连续的二进制数据,存的时候要制定数据类型,否则数据的存储和读取会出问题。
比如:存放一个int类型的a,下面连续的32位会被解释成一个整数;
如果是4个char型数据,连续的32位会按照8位为一个字符型数据。
一个顺序表的完整信息包括2部分,一部分是表中的元素集合,另一部分是为实现正常操作而需记录的信息(表头信息),即有关的整体情况的信息,这部分信息主要包括元素存储区的容量和当前表中已有的元素个数两项。
顺序表的一体式结构和分离式结构:
优劣比较:一体式存储来了新数据只能重新开辟空间,而分离式存储只需要修改存储的表头地址。
存储区的2中扩充策略:
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- python实现顺序结构基本爬虫,爬取福利图片
- 8. C#数据结构与算法 -- 线性存储结构(线性表之顺序表,数组实现)
- Python数据结构之顺序表的实现代码示例
- 基础数据结构:顺序表、链表——Python实现
- Python数据结构与算法之 栈结构的实现
- python 数据结构之顺序列表的实现
- 9. C#数据结构与算法 -- 线性存储结构(线性表之顺序表,动态数组和泛型实现)
- Python实现64位整型主机字节顺序和网络字节顺序的转换
- Java 实现顺序结构线性列表
- 数据结构实现顺序线性表的一些小应用
- 数据结构课程设计:顺序结构、动态链表结构下的一元多项式的加法、减法、乘法的实现
- 顺序表链式结构实现多项式相加。参照《数据结构》中的伪代码
- 利用顺序结构实现线性表的基本操作
- 不一样的课程表,不一样的Excle--用Excle进行设计(20):顺序结构的实现
- 常用数据结构之顺序结构List实现
- 数据结构 学习笔记之:顺序栈的C语言实现
- 六.队列顺序结构的实现程序
- 数据结构——单向链表的顺序存储及实现
- 线性结构的顺序表实现 Java版
- 线性表(顺序存储)结构与功能的简易实现