博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构---列表与数组
阅读量:4457 次
发布时间:2019-06-08

本文共 752 字,大约阅读时间需要 2 分钟。

1.列表是如何存储的?

  列表是一块连续的内存空间,上一个数下一个数是连续的

  列表叫动态表,数组叫线性表

2.列表可以做哪些操作?

  根据索引查(读)、改(写)  -----  时间复杂度O(1)

  删除,插入(最后一位删除pop或插入append,时间复杂度是O(1))---- 时间复杂度O(n)

2. 列表在其他语言中叫 ”数组“,”数组“较列表底层,他们的区别:

    int a[5]:

    数组的长度是固定的,在声明时就要设定它的长度,不能追加,而列表长度不固定,可以随意append

    数组中存放的数据必须是相同的,要是字符串(整数、对象)就都是字符串(整数、对象),而列表没有这个要求,可以既要字符串,又有整数、对象等数据类型。

3. 说说数组:

  (1)数组是一块连续的内存空间

  (2)列表叫动态表,数组叫线性表

  (3)根据索引查(读)、改(写)  -----  时间复杂度O(1)

      删除,插入(最后一位删除pop()或插入append(),时间复杂度是O(1))---- 时间复杂度O(n)

  (4)增加数据:长度是固定的,那要想数组长度变长怎么办?再申请一块更大的内存空间,把之前的数组copy过来,然后把之前的内存空间释放掉就可以了。时间复杂度是O(1)

  (5)修改数据:存放的数据必须相同,要是不想相同呢,不直接在内存中存数据,把每个数据存到不同的内存地址中,把每个内存地址存放到内存中。此时要想修改数据,就不能按照索引来改了,而是应该再开辟一块内存空间,将数据存进去,再将该内存地址存放到内存中,将之前数据的内存地址覆盖掉。

  

 

转载于:https://www.cnblogs.com/yanyufeng/p/9852299.html

你可能感兴趣的文章
js、html中的单引号、双引号及其转义使用
查看>>
OC语言---封装,继承,多态
查看>>
python 单元测试
查看>>
异常和状态管理
查看>>
hive on spark
查看>>
jmeter XLSX 读取
查看>>
一条SQL查询访问记录表(visit_log)中某个类目(catalog_id)的访问量(visit)排前两名的记录行...
查看>>
201521123028《Java程序设计》第1周学习总结
查看>>
牛客网暑期ACM多校训练营day4
查看>>
Markdown的语法
查看>>
同域内的两台电脑,一台访问另一台上搭建的IIS站点无法访问解决方法
查看>>
Spring核心之IoC
查看>>
paramiko操作详解(封装好的类,可以直接使用)
查看>>
poj 3273 Monthly Expense(二分搜索之最大化最小值)
查看>>
M - 小希的迷宫
查看>>
通过百度地图API获取坐标并将数据存储在数据库内。
查看>>
if、for语句
查看>>
Tomcat内存溢出问题解决
查看>>
网页布局笔记
查看>>
exit函数
查看>>