编写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
特别说明:本教程来源于何先生的教材,结合自己的思考以及Andrew的教程形成,其中数据使用已经得到许可,下面不再注明