从python来看数据结构基础
数组
概念
数组是有限个相同类型的变量所组成的有序集合。在内存中顺序存储,可以实现逻辑上的顺序表。
python中主要使用列表(list)和元组(tuple)两种集合,本质上都是对数组的封装。
基本操作
#初始化列表
my_list = [3,1,2,5,4,9,7,2]
#读取元素
print(my_list[2])
2
#更新元素
my_list[3] = 10
print(my_list[3])
10
#插入元素
#尾部插入
#尾部插入元素
my_list.append(6)
#中间插入元素
my_list.insert(5,11)
print(my_list)
[3, 1, 2, 10, 4, 11, 9, 7, 2, 6]
以数组的方式理解插入操作:
class MyArray:
def __init__(self,capacity):
self.array = [None] * capacity
self.size = 0
def insert(self,index,element):
#判断访问下标是否超出范围
if index < 0 or index > self.size:
raise Exception("超出数组实际元素范围!")
#从右向左循环,逐个元素向右挪一位
for i in range(self.size - 1,-1,-1):
self.array[i + 1] = self.array[i]
#腾出的位置放入新元素
self.array[index] = element
self.size += 1
def output(self):
for i in range(self.size):
print(self.array[i])
输出结果如下:
array = MyArray(4)
array.insert(0,10)
array.insert(0,11)
array.insert(0,15)
array.output()
15
11
10
但是这种方式一旦元素数量超过了数组的最大长度,数组就会被认为是非法输入,因此我们需要使用超范围插入。
class MyArray:
def __init__(self,capacity):
self.array = [None] * capacity
self.size =