Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitb6a3bfe4691089112d25870fbb9bcc83c67f9d26 (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-12-29 08:57:29 +0200
Committer
 Syndamia <kamen@syndamia.com>
2022-12-29 08:57:29 +0200
Files4d3eda67c5b0579fc94c1dcd6abc920d76994c19
uni-projects-b6a3bfe4691089112d25870fbb9bcc83c67f9d26.tar
uni-projects-b6a3bfe4691089112d25870fbb9bcc83c67f9d26.tar.gz
uni-projects-b6a3bfe4691089112d25870fbb9bcc83c67f9d26.zip
Parent0e9be940d16311036ee36aed47406481a26fdd82 (diff)
[SDP/P/exa] Replaced parameter skiplists and stacks to deque
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;
}