
linked_list = ''



def ll_insert(head, name, phone):
    new_node = {'name': name, 'phone': phone, 'next': None}
    if head is None:
        return new_node
    current = head
    while current is not None:
        if current['name'] == name:
            current['phone'] = phone
            return head
        if current['next'] is None:
            break
        current = current['next']
    current['next'] = new_node
    return head


def ll_find(head, name):
    current = head
    while current is not None:
        if current['name'] == name:
            return current['phone']
        current = current['next']
    return None


def ll_delete(head, name):
    if head is None:
        return None
    if head['name'] == name:
        return head['next']
    current = head
    while current['next'] is not None:
        if current['next']['name'] == name:
            current['next'] = current['next']['next']
            return head
        current = current['next']
    return head


def ll_list_all(head):
    result = []
    current = head
    while current is not None:
        result.append((current['name'], current['phone']))
        current = current['next']
    result.sort(key=lambda x: x[0])
    return result

with open('/mnt/agents/output/lab1/src/linked_list.py', 'w', encoding='utf-8') as f:
    f.write(linked_list)

print(linked_list)

