Python程序代码

编写Python程序
1.顺序表创建(注意:顺序表中数据元素的输入形式)。
2.顺序表的基本操作(插入、删除、修改等基本操作及算法实现)。
3.在顺序表基本运算的基础上实现相关应用算法。

以下是一个简单的顺序表实现,包括创建、插入、删除、修改等基本操作:

class SqList:
    def __init__(self, maxsize=10):
        self.maxsize = maxsize
        self.length = 0
        self.data = [None] * maxsize
    
    def __len__(self):
        return self.length
    
    def is_empty(self):
        return self.length == 0
    
    def is_full(self):
        return self.length == self.maxsize
    
    def get(self, index):
        if index < 0 or index >= self.length:
            raise IndexError("Index out of range")
        return self.data[index]
    
    def insert(self, index, value):
        if self.is_full():
            raise ValueError("List is full")
        if index < 0 or index > self.length:
            raise IndexError("Index out of range")
        for i in range(self.length, index, -1):
            self.data[i] = self.data[i-1]
        self.data[index] = value
        self.length += 1
    
    def delete(self, index):
        if self.is_empty():
            raise ValueError("List is empty")
        if index < 0 or index >= self.length:
            raise IndexError("Index out of range")
        for i in range(index, self.length-1):
            self.data[i] = self.data[i+1]
        self.data[self.length-1] = None
        self.length -= 1
    
    def update(self, index, value):
        if index < 0 or index >= self.length:
            raise IndexError("Index out of range")
        self.data[index] = value
    
    def print_list(self):
        for i in range(self.length):
            print(self.data[i], end=" ")
        print()


以下是一个简单的应用算法,用于查找一个无序顺序表中的最大值:

def find_max(lst):
    if lst.is_empty():
        return None
    max_value = lst.get(0)
    for i in range(1, len(lst)):
        if lst.get(i) > max_value:
            max_value = lst.get(i)
    return max_value


可以通过以下代码进行测试:

lst = SqList(maxsize=5)
lst.insert(0, 5)
lst.insert(1, 3)
lst.insert(2, 8)
lst.insert(3, 1)
lst.insert(4, 2)

lst.print_list() # 输出: 5 3 8 1 2

lst.delete(2)

lst.print_list() # 输出: 5 3 1 2

lst.update(1, 4)

lst.print_list() # 输出: 5 4 1 2

print(find_max(lst)) # 输出: 5