数据结构---列表与数组

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

  

 

posted @ 2018-10-25 19:41  悍妻  阅读(1543)  评论(0编辑  收藏  举报