数组基本操作

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/14950306.html

class Array:
    def __init__(self, capacity):
        self.array = [None] * capacity
        self.size = 0

    def get(self, index):
        if index < 0 or index > self.size:
            raise Exception("index out of bounds")
        return self.array[index]

    def insert(self, index, data):
        if index < 0 or index > self.size:
            raise Exception("index out of bounds")
        if self.size >= len(self.array):
            self.resize()
        for i in range(self.size - 1, index - 1, -1):
            self.array[i + 1] = self.array[i]
        self.array[index] = data
        self.size += 1

    def remove(self, index):
        if index < 0 or index >= self.size:
            raise Exception("index out of bounds")
        for i in range(index, self.size - 1):
            self.array[i] = self.array[i + 1]
        self.size -= 1

    def resize(self):
        new_array = [None] * len(self.array) * 2
        for i in range(self.size):
            new_array[i] = self.array[i]
        self.array = new_array

    def output(self):
        result = ""
        for i in range(self.size):
            result += str(self.array[i]) + ", "
        return result.strip(", ")


array = Array(5)
array.insert(0, 1)
array.insert(1, 2)
array.insert(2, 3)
array.insert(3, 4)
array.insert(4, 5)
# 1, 2, 3, 4, 5
print(array.output())
# 5
print(array.get(4))
array.insert(2, 6)
array.insert(2, 7)
array.insert(2, 8)
# 1, 2, 8, 7, 6, 3, 4, 5
print(array.output())
array.remove(0)
# 2, 8, 7, 6, 3, 4, 5
print(array.output())
强者自救 圣者渡人
原文地址:https://www.cnblogs.com/agilestyle/p/14950306.html