diff options
| Commit | b6a3bfe4691089112d25870fbb9bcc83c67f9d26 (patch) | |
|---|---|---|
| Author | 2022-12-29 08:57:29 +0200 | |
| Committer | 2022-12-29 08:57:29 +0200 | |
| Files | 4d3eda67c5b0579fc94c1dcd6abc920d76994c19 | |
| uni-projects-b6a3bfe4691089112d25870fbb9bcc83c67f9d26.tar uni-projects-b6a3bfe4691089112d25870fbb9bcc83c67f9d26.tar.gz uni-projects-b6a3bfe4691089112d25870fbb9bcc83c67f9d26.zip | ||
| Parent | 0e9be940d16311036ee36aed47406481a26fdd82 (diff) | |
[SDP/P/exa] Replaced parameter skiplists and stacks to deque
2 files changed, 13 insertions, 19 deletions
| -rw-r--r-- | Year 2/Structures and data algorithms/Project/exa/SkipList.hpp | 18 | ||||
| -rw-r--r-- | Year 2/Structures and data algorithms/Project/exa/main.cpp | 14 |
diff --git a/Year 2/Structures and data algorithms/Project/exa/SkipList.hpp b/Year 2/Structures and data algorithms/Project/exa/SkipList.hpp index f124516..125013b 100644 --- a/Year 2/Structures and data algorithms/Project/exa/SkipList.hpp +++ b/Year 2/Structures and data algorithms/Project/exa/SkipList.hpp @@ -3,7 +3,7 @@ #include <istream> #include <ostream> -#include <stack> +#include <deque> template <class T> class SkipList { @@ -23,10 +23,10 @@ class SkipList { void free(); Node* findNode(const T&); - bool recShortSublist(Node*, SkipList<T>&, std::stack<T>&); + bool recShortSublist(Node*, std::deque<T>&, std::deque<T>&); public: - std::stack<T> shortestSublistIncluding(SkipList<T>&); + std::deque<T> shortestSublistIncluding(std::deque<T>&); void push(const T& elem); bool addSkip(const T&, const T&); @@ -89,26 +89,26 @@ public: #include <iostream> template <class T> -bool SkipList<T>::recShortSublist(Node* current, SkipList<T>& search, std::stack<T>& out) { +bool SkipList<T>::recShortSublist(Node* current, std::deque<T>& search, std::deque<T>& out) { if (current == nullptr) return false; - out.push(current->value); + out.push_back(current->value); if (current->value == search.front()) { - search.pop(); + search.pop_front(); if (search.empty()) return true; } if (!recShortSublist(current->skip, search, out) && !recShortSublist(current->next, search, out)) { - out.pop(); + out.pop_back(); return false; } return true; } template <class T> -std::stack<T> SkipList<T>::shortestSublistIncluding(SkipList<T>& locs) { - std::stack<T> out; +std::deque<T> SkipList<T>::shortestSublistIncluding(std::deque<T>& locs) { + std::deque<T> out; recShortSublist(head, locs, out); return out; } diff --git a/Year 2/Structures and data algorithms/Project/exa/main.cpp b/Year 2/Structures and data algorithms/Project/exa/main.cpp index 1698a2c..88bf9ce 100644 --- a/Year 2/Structures and data algorithms/Project/exa/main.cpp +++ b/Year 2/Structures and data algorithms/Project/exa/main.cpp @@ -22,17 +22,11 @@ int main() { cities.print(std::cout) << std::endl; - SkipList<std::string> visit; - visit.push("Plovdiv"); - visit.push("StaraZagora"); - visit.push("Yambol"); - visit.push("Burgas"); - std::stack<std::string> path = cities.shortestSublistIncluding(visit); + std::deque<std::string> locs = { "Plovdiv", "StaraZagora", "Yambol", "Burgas" }; + std::deque<std::string> path = cities.shortestSublistIncluding(locs); - while (!path.empty()) { - std::cout << path.top() << ", "; - path.pop(); + for (auto loc : path) { + std::cout << loc << ", "; } std::cout << std::endl; - // path.print(std::cout) << std::endl; } |
