顺序表

顺序表

  • 数据结构中存储的元素是有顺序的,顺序表的结构可以分为两种形式:单数据类型(数组)和多数据类型(列表)。
  • python中的列表和元组就属于多数据类型的顺序表
  • 单数据类型顺序表的内存图(内存连续开启)

单数据类型的顺序表:
a[0]就是偏移0位,就是a所指向的首地址,a[1]是偏移1位。就是加上4个字节。指向了Ox4,依次类推,数组就是单数据顺序表。按照固有的偏移进行偏移,找出索引所表示的数据。所以存储数据都是相同的。符合公式,偏移量*数据字节数。
  • 多数据类型顺序表的内存图(内存非连续开辟)

多数据类型的顺序表:开辟了2块内存空间。一个就是连续的内存空间,就像上图的0x2,0x6,0xA,他们中存储的都是不同数据类型所开辟空间的内存地址。a变量这个列表还是指向首地址。当我们用偏移就是索引来取出数据时,也是按照4个字节来偏移。找出连续内存空间的地址。这些地址存储的是不同数据类型的内存地址,这样我们就可以得到不同数据类型的开辟的空间,就找到不同数据类型的数据了。与单数据顺序表不同之处在于不同数据类型需开辟他们自己的空间。而我们则还需开辟连续空间存放他们的内存地址。

*顺序表的弊端:顺序表的结构需要预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁。(就相当于我跟列表中插入数据,后边的指向不同数据类型的内存地址,需要往后挪,这样需要数据的搬迁)

原文地址:https://www.cnblogs.com/zzsy/p/12682203.html