Forwarded from Timur
✅DFS algorithm
📚Алгоритм поиска в глубину (DFS, Depth First Search) обходит граф так,
что он идет "вглубь" от начальной вершины по каждому пути до конца,
прежде чем вернуться назад и исследовать следующий путь. Давайте разберем
его пошагово.
⚙️Как работает алгоритм:
💡1.Начинаем с начальной вершины (например, 0).
💡2.Помечаем её как посещённую.
💡3.Идем по всем её смежным вершинам.
💡4.Если соседняя вершина ещё не посещена, то:
- Переходим к ней и повторяем процесс (углубляемся).
💡5.Если все соседи посещены или их нет, возвращаемся назад и ищем другие пути.
💡6.Продолжаем, пока не обойдем все достижимые вершины.
📑Читать: тут
#algorithms #cpp
С++ - Поиск в глубину 📚Алгоритм поиска в глубину (DFS, Depth First Search) обходит граф так,
что он идет "вглубь" от начальной вершины по каждому пути до конца,
прежде чем вернуться назад и исследовать следующий путь. Давайте разберем
его пошагово.
⚙️Как работает алгоритм:
💡1.Начинаем с начальной вершины (например, 0).
💡2.Помечаем её как посещённую.
💡3.Идем по всем её смежным вершинам.
💡4.Если соседняя вершина ещё не посещена, то:
- Переходим к ней и повторяем процесс (углубляемся).
💡5.Если все соседи посещены или их нет, возвращаемся назад и ищем другие пути.
💡6.Продолжаем, пока не обойдем все достижимые вершины.
📑Читать: тут
#algorithms #cpp
Реализация простого
📚Создание простой версии
key типа string, value типа int. Для решение проблемы с коллизии я
использовал алгоритм "Прямой адресации".
------------------------------
⚙️Кратко о коде:
➖#define FILL_FACTOR 75 - это параметр который говорит когда стоит расширять HashMap.
Если количество элементов if this->count * 100 >= this->capacity * FILL_FACTOR то мы расширяем наш HashMap, этим занимается realloc().
➖int get() - Просто выдаёт значение по ключу
➖long hashed() - это функция преобразует key в хэш
➖void init() - инициализируем и выделяем память на наш
➖typedef struct {} Item - Описывает элемент внутри HashMap.
➖elements - элементы в
➖capacity - выделенный размер для элементов в
➖count - количество заполненных элементов в
------------------------------
📑Почитать о работе
#algorithms #cpp
HashMap на C++ 📚Создание простой версии
HashMap на с++, key типа string, value типа int. Для решение проблемы с коллизии я
использовал алгоритм "Прямой адресации".
------------------------------
⚙️Кратко о коде:
➖#define FILL_FACTOR 75 - это параметр который говорит когда стоит расширять HashMap.
Если количество элементов if this->count * 100 >= this->capacity * FILL_FACTOR то мы расширяем наш HashMap, этим занимается realloc().
➖int get() - Просто выдаёт значение по ключу
➖long hashed() - это функция преобразует key в хэш
➖void init() - инициализируем и выделяем память на наш
HashMap.➖typedef struct {} Item - Описывает элемент внутри HashMap.
➖elements - элементы в
HashMap.➖capacity - выделенный размер для элементов в
HashMap.➖count - количество заполненных элементов в
HashMap.------------------------------
📑Почитать о работе
HashMap: тут#algorithms #cpp
🟢Задача на С++:
📚Завершите решение так, чтобы оно разделило строку на пары
из двух символов. Если строка содержит нечетное количество
символов, то следует заменить пропущенный второй символ в
последней паре символом подчеркивания ('_').
👁🗨Примеры:
« "
» ["ab", "c_"]
« "
» ["ab", "cd", "ef"]
#task #cpp
📚Завершите решение так, чтобы оно разделило строку на пары
из двух символов. Если строка содержит нечетное количество
символов, то следует заменить пропущенный второй символ в
последней паре символом подчеркивания ('_').
👁🗨Примеры:
« "
abc" » ["ab", "c_"]
« "
abcdef" » ["ab", "cd", "ef"]
#task #cpp
❤2