From b6a3bfe4691089112d25870fbb9bcc83c67f9d26 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 29 Dec 2022 08:57:29 +0200 Subject: [SDP/P/exa] Replaced parameter skiplists and stacks to deque --- .../Project/exa/SkipList.hpp | 18 +++++++++--------- .../Project/exa/main.cpp | 14 ++++---------- 2 files changed, 13 insertions(+), 19 deletions(-) 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 #include -#include +#include template class SkipList { @@ -23,10 +23,10 @@ class SkipList { void free(); Node* findNode(const T&); - bool recShortSublist(Node*, SkipList&, std::stack&); + bool recShortSublist(Node*, std::deque&, std::deque&); public: - std::stack shortestSublistIncluding(SkipList&); + std::deque shortestSublistIncluding(std::deque&); void push(const T& elem); bool addSkip(const T&, const T&); @@ -89,26 +89,26 @@ public: #include template -bool SkipList::recShortSublist(Node* current, SkipList& search, std::stack& out) { +bool SkipList::recShortSublist(Node* current, std::deque& search, std::deque& 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 -std::stack SkipList::shortestSublistIncluding(SkipList& locs) { - std::stack out; +std::deque SkipList::shortestSublistIncluding(std::deque& locs) { + std::deque 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 visit; - visit.push("Plovdiv"); - visit.push("StaraZagora"); - visit.push("Yambol"); - visit.push("Burgas"); - std::stack path = cities.shortestSublistIncluding(visit); + std::deque locs = { "Plovdiv", "StaraZagora", "Yambol", "Burgas" }; + std::deque 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; } -- cgit v1.3.1-26-gb76a