This commit is contained in:
2026-04-18 14:42:00 +05:00
commit ef77f101fa
96 changed files with 3134 additions and 0 deletions

75
labPython/lab16/task_2.py Normal file
View File

@@ -0,0 +1,75 @@
class Node:
def __init__(self, data):
self.data = data
self.next = None
def enqueue(head, tail, d):
node = Node(d)
if not head:
return node, node
tail.next = node
return head, node
def merge(h1, h2):
if not h1:
return h2
if not h2:
return h1
if h1.data < h2.data:
head = h1
h1 = h1.next
else:
head = h2
h2 = h2.next
cur = head
while h1 and h2:
if h1.data < h2.data:
cur.next = h1
h1 = h1.next
else:
cur.next = h2
h2 = h2.next
cur = cur.next
cur.next = h1 if h1 else h2
return head
def print_q(h):
while h:
print(h.data, end=" ")
h = h.next
print()
h1 = t1 = None
h2 = t2 = None
while True:
try:
print("\n1 - создать очередь 1")
print("2 - создать очередь 2")
print("3 - объединить")
print("0 - выход")
c = input(">> ")
if c == "1":
h1 = t1 = None
for x in map(int, input().split()):
h1, t1 = enqueue(h1, t1, x)
elif c == "2":
h2 = t2 = None
for x in map(int, input().split()):
h2, t2 = enqueue(h2, t2, x)
elif c == "3":
res = merge(h1, h2)
print_q(res)
elif c == "0":
break
except:
print("Ошибка")