python顺序表及其实现方式

1.python顺序表的存储形式

python的每个int型占四个字节(每个Byte是八个bit),比如Li = [12,"ab",1.23,399],存储形式如下

python顺序表及其实现方式

由于不同的数据类型占据的字节不一样,比如char型每个字母占据一个字节,则"ab"占两个字节,这样寻址方式0x23+相对地址x4就不实用,所以每个内址存储真是数据的地址,因为地址都是整型所以都是占据四个字节,这样存储形式就做到了顺序存储,我们把真实数据的地址叫做外址

2.顺序表的两种实现形式

python顺序表及其实现方式

max保存申请的空间比如8,num存储现在存有的空间比如5,num<=max,如果需要添加第九个数据就得重新向内存申请空间,原有的空间作废,所以我们有两种实现形式,通常采用第二种

通常采用下面一种方式,由于每次申请一块内存都是固定的大小,如果往列表添加数据就得重新开辟内存空间,第一种形式需要重新开辟所有空间,而第二种形式仅仅需要开辟数据地址的空间。