Files
labs/labPython/lab17/task_3.py
2026-04-18 14:42:00 +05:00

81 lines
1.8 KiB
Python

class Node:
def __init__(self, data):
self.data = data
self.prev = None
self.next = None
class IntList:
def __init__(self, head):
self.first = head
self.last = head
self.current = head
while self.last and self.last.next:
self.last = self.last.next
def ToFirst(self):
self.current = self.first
def ToNext(self):
if self.current and self.current.next:
self.current = self.current.next
def SetData(self, d):
if self.current:
self.current.data = d
def IsLast(self):
return self.current == self.last
def process(self):
self.ToFirst()
index = 1
count = 0
while self.current:
count += 1
if index % 2 == 1:
self.SetData(0)
if self.IsLast():
break
self.ToNext()
index += 1
return count
def print_list(self):
cur = self.first
res = []
while cur:
res.append(str(cur.data))
cur = cur.next
print("Список:", " ".join(res))
def create(arr):
if not arr:
return None
head = Node(arr[0])
cur = head
for x in arr[1:]:
n = Node(x)
cur.next = n
n.prev = cur
cur = n
return head
while True:
try:
print("\n1 - Ввести список\n0 - Выход")
cmd = input("Выбор: ")
if cmd == "0":
break
if cmd == "1":
arr = list(map(int, input("Введите числа: ").split()))
head = create(arr)
lst = IntList(head)
n = lst.process()
print("Количество:", n)
lst.print_list()
except:
print("Ошибка")