zoukankan      html  css  js  c++  java
  • 顺序表

    顺序表

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

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

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

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

  • 相关阅读:
    51nod 1412 AVL树的种类
    bzoj1093 [ZJOI2007]最大半联通子图 缩点 + 拓扑序
    bzoj1116 [POI2008]CLO 边双联通分量
    luoguP4366 [Code+#4]最短路 最短路
    51nod1821 最优集合 贪心
    51nod2000 四边形分割平面 规律题
    luoguP3250 [HNOI2016]网络 树链剖分 + 堆
    [Luogu5162]WD与积木(多项式求逆)
    [Luogu5161]WD与数列(后缀数组/后缀自动机+线段树合并)
    [Luogu5106]dkw的lcm
  • 原文地址:https://www.cnblogs.com/zzsy/p/12682203.html
Copyright © 2011-2022 走看看