From ea11dc4a7563647a551e15095792e3f7127be9ea Mon Sep 17 00:00:00 2001 From: Ekaterina <73318371+keti200125@users.noreply.github.com> Date: Wed, 25 Oct 2023 21:05:18 +0300 Subject: bonus task seminar02 --- Seminar02/bonusTask01.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 Seminar02/bonusTask01.cpp (limited to 'Seminar02/bonusTask01.cpp') diff --git a/Seminar02/bonusTask01.cpp b/Seminar02/bonusTask01.cpp new file mode 100644 index 0000000..6e41016 --- /dev/null +++ b/Seminar02/bonusTask01.cpp @@ -0,0 +1,51 @@ +#include +#include + +void sortStack(std::stack &first) +{ + std::stack second; + int currentElement = 0; + while (!first.empty()) + { + currentElement = first.top(); + first.pop(); + + while (!second.empty() && second.top() > currentElement) + { + first.push(second.top()); + second.pop(); + } + second.push(currentElement); + } + + while (!second.empty()) + { + first.push(second.top()); + second.pop(); + } +} + +void stackPrint(std::stack st) +{ + while (!st.empty()) + { + std::cout << st.top() << " "; + st.pop(); + } + std::cout << std::endl; +} + +int main() +{ + std::stack st; + st.push(8); + st.push(2); + st.push(4); + st.push(1); + st.push(5); + st.push(3); + + stackPrint(st); + sortStack(st); + stackPrint(st); +} \ No newline at end of file -- cgit v1.3.1-26-gb76a