forked from UNN/2026-rff_mp
Добавлены шаблоны для реализации структур
This commit is contained in:
parent
f5b0fec46f
commit
8124c755f8
20
MusinAA/task-1/BinaryTree.py
Normal file
20
MusinAA/task-1/BinaryTree.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
"""
|
||||
Двоичное дерево поиска
|
||||
|
||||
Узел — словарь:
|
||||
{'name': 'Имя', 'phone': '123', 'left': None, 'right': None}.
|
||||
"""
|
||||
|
||||
def bst_insert(root, name, phone):
|
||||
"""Рекурсивно или итеративно вставляет,
|
||||
возвращает новый корень (если корень меняется)."""
|
||||
|
||||
def bst_find(root, name):
|
||||
...
|
||||
|
||||
def bst_delete(root, name):
|
||||
"""Удаление, возвращает новый корень."""
|
||||
|
||||
def bst_list_all(root):
|
||||
"""Центрированный обход.
|
||||
Рекурсивно собирает записи в отсортированном порядке."""
|
||||
18
MusinAA/task-1/HashTable.py
Normal file
18
MusinAA/task-1/HashTable.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
"""
|
||||
Хеш-таблица
|
||||
|
||||
Хранится как список buckets фиксированной длины,
|
||||
каждый элемент — голова связного списка (или None).
|
||||
"""
|
||||
|
||||
def ht_insert(buckets, name, phone):
|
||||
"""вычисляет индекс, вызывает ll_insert для соответствующего бакета."""
|
||||
|
||||
def ht_find(buckets, name):
|
||||
...
|
||||
|
||||
def ht_delete(buckets, name):
|
||||
...
|
||||
|
||||
def ht_list_all(buckets):
|
||||
"""Собирает все записи из всех бакетов и сортирует"""
|
||||
25
MusinAA/task-1/LinkedList.py
Normal file
25
MusinAA/task-1/LinkedList.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
"""
|
||||
Связный список (LinkedListPhoneBook)
|
||||
|
||||
Узел представляется словарём:
|
||||
{'name': 'Имя', 'phone': '123', 'next': None}.
|
||||
"""
|
||||
|
||||
|
||||
|
||||
def ll_insert(head, name, phone):
|
||||
"""
|
||||
Проходит до конца (или сразу добавляет в конец) и возвращает новую
|
||||
голову (если вставка в начало) или изменяет список по ссылке.
|
||||
Удобнее возвращать новую голову, если вставка может быть в начало.
|
||||
"""
|
||||
|
||||
def ll_find(head, name):
|
||||
"""Ищет узел, возвращает телефон или None."""
|
||||
|
||||
def ll_delete(head, name):
|
||||
"""Удаляет узел, возвращает новую голову."""
|
||||
|
||||
def ll_list_all(head):
|
||||
"""Cобирает все записи в список и сортирует.
|
||||
сортировка вынесена отдельно)."""
|
||||
Loading…
Reference in New Issue
Block a user