📌  相关文章
📜  教资会网络 | UGC NET CS 2014 年 12 月 – II |问题 5(1)

📅  最后修改于: 2023-12-03 15:39:54.050000             🧑  作者: Mango

UGC NET CS 2014 年 12 月 – II | 问题 5

这是一道计算机科学的试题,题目要求考生实现一种数据结构,可以向其中添加和删除元素,并且可以以任意顺序遍历这个数据结构中的元素。

以下是一个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)