📅  最后修改于: 2023-12-03 15:39:54.050000             🧑  作者: Mango
这是一道计算机科学的试题,题目要求考生实现一种数据结构,可以向其中添加和删除元素,并且可以以任意顺序遍历这个数据结构中的元素。
以下是一个Python实现的列表,可以满足以上要求:
# 定义一个可以任意遍历的列表类
class TraverseList:
def __init__(self):
self.items = []
self.index = -1
def add(self, item):
self.items.append(item)
def remove(self, item):
self.items.remove(item)
def __iter__(self):
return self
def __next__(self):
self.index += 1
if self.index == len(self.items):
self.index = -1
raise StopIteration
return self.items[self.index]
这个列表使用了Python的迭代器协议,可以以任意顺序遍历其中的元素,并且具有添加和删除元素的功能。使用方法如下:
# 创建一个列表实例
my_list = TraverseList()
# 添加元素
my_list.add(1)
my_list.add(2)
my_list.add(3)
# 遍历元素
for item in my_list:
print(item)
# 删除元素
my_list.remove(2)
# 再次遍历元素
for item in my_list:
print(item)
使用Markdown语言,上方的代码块可以在文档中显示为:
```python
# 定义一个可以任意遍历的列表类
class TraverseList:
def __init__(self):
self.items = []
self.index = -1
def add(self, item):
self.items.append(item)
def remove(self, item):
self.items.remove(item)
def __iter__(self):
return self
def __next__(self):
self.index += 1
if self.index == len(self.items):
self.index = -1
raise StopIteration
return self.items[self.index]
# 创建一个列表实例
my_list = TraverseList()
# 添加元素
my_list.add(1)
my_list.add(2)
my_list.add(3)
# 遍历元素
for item in my_list:
print(item)
# 删除元素
my_list.remove(2)
# 再次遍历元素
for item in my_list:
print(item)