Python 自定义列表类:实现基本操作和排序功能
以下是基于设定实现底层列表类 CustomList 的 Python 代码:
class CustomList:
def __init__(self, capacity):
self.elements = [None] * capacity
self.max_capacity = capacity
self.size = 0
def print_elements(self):
print(self.elements[:self.size])
def find_by_value(self, value):
for i in range(self.size):
if self.elements[i] == value:
return i
return -1
def find_by_index(self, index):
if 0 <= index < self.size:
return self.elements[index]
return None
def delete_by_value(self, value):
index = self.find_by_value(value)
if index != -1:
self.delete_by_index(index)
def append(self, value):
if self.size < self.max_capacity:
self.elements[self.size] = value
self.size += 1
def bubble_sort(self):
for i in range(self.size - 1):
for j in range(0, self.size - i - 1):
if self.elements[j] > self.elements[j + 1]:
self.elements[j], self.elements[j + 1] = self.elements[j + 1], self.elements[j]
def insert_in_sorted_order(self, value):
if self.size == 0 or value >= self.elements[self.size - 1]:
self.append(value)
return
for i in range(self.size):
if value < self.elements[i]:
for j in range(self.size, i, -1):
self.elements[j] = self.elements[j - 1]
self.elements[i] = value
self.size += 1
return
使用示例:
# 创建 CustomList 实例
my_list = CustomList(10)
# 打印元素
my_list.print_elements() # 输出: []
# 在末尾追加元素
my_list.append(5)
my_list.append(2)
my_list.append(8)
my_list.print_elements() # 输出: [5, 2, 8]
# 按值查找元素
print(my_list.find_by_value(2)) # 输出: 1
# 按索引查找元素
print(my_list.find_by_index(2)) # 输出: 8
# 按值删除元素
my_list.delete_by_value(2)
my_list.print_elements() # 输出: [5, 8]
# 使用冒泡排序对列表进行排序
my_list.bubble_sort()
my_list.print_elements() # 输出: [5, 8]
# 在有序的列表中插入一个元素
my_list.insert_in_sorted_order(6)
my_list.print_elements() # 输出: [5, 6, 8]
注意:以上代码只是一个简单示例,可能还需要根据实际需求进行适当调整和完善。
原文地址: https://www.cveoy.top/t/topic/bIpF 著作权归作者所有。请勿转载和采集!