class Node: def __init__(self, value): self.value = value self.next = None self.prev = None class DoublyCircularList: def __init__(self): self.head = None def append(self, value): new_node = Node(value) if not self.head: self.head = new_node new_node.next = new_node new_node.prev = new_node else: tail = self.head.prev tail.next = new_node new_node.prev = tail new_node.next = self.head self.head.prev = new_node def __iter__(self): return ReverseIterator(self.head) class ReverseIterator: def __init__(self, head): self.current = head.prev if head else None def __iter__(self): return self def __next__(self): if not self.current: raise StopIteration val = self.current.value self.current = self.current.prev return val while True: print("1 - Создать список и начать итерацию") print("0 - Выход") choice = input("Выбор: ") if choice == "0": break if choice == "1": try: data = input("Введите элементы через пробел: ").split() lst = DoublyCircularList() for x in data: lst.append(x) it = iter(lst) n = int(input("Сколько элементов вывести: ")) for _ in range(n): print(next(it)) except: print("Ошибка")