forked from UNN/2026-rff_mp
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 147e3da053 | |||
| 7adc1e91f5 |
0
famutdinovmd/428b.md
Normal file
0
famutdinovmd/428b.md
Normal file
23
famutdinovmd/tasks/1/BinaryTree.py
Normal file
23
famutdinovmd/tasks/1/BinaryTree.py
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
"""
|
||||||
|
Двоичное дерево поиска
|
||||||
|
|
||||||
|
Узел — словарь:
|
||||||
|
{'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):
|
||||||
|
"""Центрированный обход.
|
||||||
|
Рекурсивно собирает записи в отсортированном порядке."""
|
||||||
|
|
||||||
|
|
||||||
27
famutdinovmd/tasks/1/HashTable.py
Normal file
27
famutdinovmd/tasks/1/HashTable.py
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
"""
|
||||||
|
Хеш-таблица
|
||||||
|
|
||||||
|
Хранится как список buckets фиксированной длины,
|
||||||
|
каждый элемент — голова связного списка (или None).
|
||||||
|
"""
|
||||||
|
|
||||||
|
from LinkedList import *
|
||||||
|
|
||||||
|
def hash_fun(name, size) :
|
||||||
|
"""Принимает имя и возвращает индекс бакета для него."""
|
||||||
|
|
||||||
|
def ht_insert(buckets, name, phone, blen=50):
|
||||||
|
"""Возвращает новый массив бакетов
|
||||||
|
Вычисляет индекс, вызывает ll_insert для соответствующего бакета.
|
||||||
|
Функция не меняет размер массива бакетов автоматически!"""
|
||||||
|
|
||||||
|
def ht_delete(buckets, name):
|
||||||
|
"""Возвращает новый массив бакетов без элемента с именем name"""
|
||||||
|
|
||||||
|
|
||||||
|
def ht_find(buckets, name):
|
||||||
|
"""поиск в хеш таблице хз че это загугли"""
|
||||||
|
|
||||||
|
def ht_list_all(buckets):
|
||||||
|
"""Собирает все записи из всех бакетов и сортирует"""
|
||||||
|
|
||||||
25
famutdinovmd/tasks/1/LinkedList.py
Normal file
25
famutdinovmd/tasks/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