Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bialger/bst
C++ library that implements an Associative Container with Binary Search Tree logics. ITMO SE'27 first cource programming laboratory work.
https://github.com/bialger/bst
algorithm algorithms stl-container stl-containers student-project
Last synced: 14 days ago
JSON representation
C++ library that implements an Associative Container with Binary Search Tree logics. ITMO SE'27 first cource programming laboratory work.
- Host: GitHub
- URL: https://github.com/bialger/bst
- Owner: bialger
- License: gpl-3.0
- Created: 2024-07-06T12:32:31.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-08-14T10:40:25.000Z (3 months ago)
- Last Synced: 2024-10-11T09:28:32.801Z (about 1 month ago)
- Topics: algorithm, algorithms, stl-container, stl-containers, student-project
- Language: C++
- Homepage:
- Size: 140 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Лабораторная работа 8
Бинарное дерево поиска. Шаблоны. STL.
## Задача
Реализовать три STL-совместимых контейнера для [BinarySearchTree](https://en.wikipedia.org/wiki/Binary_search_tree), реализующие различные [способы обхода дерева (in-, pre-, post-order)](https://en.wikipedia.org/wiki/Tree_traversal) через итератор.
## Требования
Контейнер должен предоставлять из себя шаблон, праметрезируемый типом хранимых объетов, оператором сравнения и аллокатором, а так же удовлетворять следующим требованиям к stl - совместимым контейнерам:
- [контейнера](https://en.cppreference.com/w/cpp/named_req/Container)
- [ассоциативный контейнера](https://en.cppreference.com/w/cpp/named_req/AssociativeContainer)
- [контейнера с обратным итератором](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
- [контейнера поддерживающие аллокатор](https://en.cppreference.com/w/cpp/named_req/AllocatorAwareContainer)
- [oбладать двунаправленным итератом](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator)Способ обхода дерева должен быть реализован через итератор, те оператор "++" должен приводить к перемещению итератора к следующему элементу в дереве, согласно правилу обхода.
## Тесты
Все вышеуказанные требования должны быть покрыты тестами, с помощью фреймворка [Google Test](http://google.github.io/googletest).
Тесты также являются частью задания, поэтому покрытие будет влиять на максимальный балл.
## Ограничения
- Запрещено использовать стандартные контейнеры
## NB
Подумайте над тем как не делать 3 разных контейнера, а воспользоваться [Tag Dispatch Idiom](https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Tag_Dispatching)
## Deadline
1. 12.03.24. 0.8
2. 19.03.24. 0.65
3. 26.03.24. 0.5Максимальное количество баллов - 15