一、数组
说动态数组之前,首先要说数组,数组是一种顺序存储的线性表,所有元素的内存地址都是连续的。数组的最大优点是他的查找时间复杂度能够达到O(1),但是增和删的时间复杂度较高O(n)
二、动态数组
动态数组,即根据用户的输入动态扩充或缩小当前数组的容量。在python中,已经内置了动态数组,叫做列表,List
下面是利用python代码实现动态数组的增删改查操作。
# ArrryList.py
class Arr:
# 设置两个常亮,分别是默认容量大小与未找到元素返回的值
DEFAULT_CAPACITY = 10
ELEMENT_NOT_FOUND = -1
# 初始化,若用户未指定数组大小或者小于默认,直接使用默认容量,否则容量为用户指定
def __init__(self, capacity=DEFAULT_CAPACITY):
capacity = self.DEFAULT_CAPACITY if capacity < self.DEFAULT_CAPACITY else capacity
self._capacity = capacity
self._size = 0
self._elements = [None] * self._capacity
def size(self):
return self._size
def is_empty(self):
# return True if self._size == 0 else False
# 改进上面这还代码,因为在pyth