From 2f7370eb0113379c00ac4ac153021a7828763ac6 Mon Sep 17 00:00:00 2001 From: Pavel Date: Sun, 3 May 2026 22:59:04 +0300 Subject: [PATCH] linked_list --- romanovpv/task 1/linked_list.py | 44 ++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/romanovpv/task 1/linked_list.py b/romanovpv/task 1/linked_list.py index 1bb6143..317e50c 100644 --- a/romanovpv/task 1/linked_list.py +++ b/romanovpv/task 1/linked_list.py @@ -1,12 +1,44 @@ +def ll_create_node(name, phone): + return {'name': name, 'phone': phone} + def ll_insert(head, name, phone): - {'name': name, 'phone': phone} - pass + if head is None: + return ll_create_node(name, phone) + current = head + while current: + if current ['name'] == name: + current['phone'] = phone + return head + if current ['next'] is None: + break + current = current['next'] + current['next'] = ll_create_node(name, phone) + return head def ll_find(head, name): - pass + current = head + while current: + if current['name'] == name: + return current['phone'] + current = current['next'] + return None def ll_delete(head, name): - pass - + if head is None: + return None + if head['name'] == name: + return head['next'] + + current = head + while current['next']: + if current['next']['name'] == name: + current['next'] = current['next']['next'] + return head + def ll_list_all(head): - pass \ No newline at end of file + items = [] + current = head + while current: + items.append((current['name'], current['phone'])) + current = current['next'] + return sorted(items, key=lambda x:x[0]) \ No newline at end of file