From 1b191968ba95e2bf42054498024a284309e7bf85 Mon Sep 17 00:00:00 2001 From: ishwar Date: Sun, 14 Nov 2021 13:34:54 +0530 Subject: [PATCH 1/9] adding c++ implementation of stack and queue --- contents/stacks_and_queues/code/c++/queue.cpp | 102 ++++++++++++++++++ contents/stacks_and_queues/code/c++/stack.cpp | 83 ++++++++++++++ .../stacks_and_queues/stacks_and_queues.md | 4 + 3 files changed, 189 insertions(+) create mode 100644 contents/stacks_and_queues/code/c++/queue.cpp create mode 100644 contents/stacks_and_queues/code/c++/stack.cpp diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp new file mode 100644 index 000000000..f94140e26 --- /dev/null +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -0,0 +1,102 @@ +#include +using namespace std; + + +namespace my { + /** + *implementation using parameterised linked list + * [value][next] -> [value][next] -> ... -> [value][next] -> [value][next] + * (front Node) (intermediat elements) (rear Node) (dummy Node) + */ + template + struct Node { + /** + * next: will store next Node(right) address + */ + T value; + Node* next; + Node(const T& V) : value(V), next(nullptr) { } + }; + + template + class queue { + private: + /** + * variabel: _front points to left most node , right most Node is dummy Node + * count: will keep track of current number of elements present in stack excluding dummy Node + */ + Node* _front; + Node* rear; + size_t count; + public: + queue() : _front(nullptr), rear(nullptr), count(0ULL) { + _front = rear = new Node(0); // creating a dummy Node + } + + void push(const T& element) { + Node* new_node = new Node(element); // create New Node + if (count > 0) { + new_node->next = rear->next; // make buffer point to dummy Node + rear->next = new_node; // make rear Node point to buffer + rear = new_node; // make rear pointer to point to buffer + } else { + new_node->next = rear; + rear = _front = new_node; + } + count = count + 1; + } + + void dequeue() { + if (count > 0) { + Node* buffer = _front; + _front = _front->next; + count = count - 1; + delete buffer; + } + rear = (count != 0) ? rear : _front; + } + + T& front() const { return _front->value; } + // returning reference can very usefull if someone wants to modify _front element + + size_t size() const { return count; } + + bool empty() const { return count == 0; } + + ~queue() { + for (Node* pointer = _front; pointer != nullptr;) { + Node* buffer = pointer; + pointer = pointer->next; + delete buffer; + } + } + }; +} + +int main() { + my::queue Q; + + Q.push(0); + Q.push(1); + Q.push(2); + Q.push(3); + + cout << "count: " << Q.size() << endl; + + Q.front() = 10; + + while (Q.empty() != true) { + cout << "element: " << Q.front() << endl; + Q.dequeue(); + } + + Q.push(3); + Q.push(6); + cout << "count: " << Q.size() << endl; + while (Q.empty() != true) { + cout << "element: " << Q.front() << endl; + Q.dequeue(); + } + return 0; +} + diff --git a/contents/stacks_and_queues/code/c++/stack.cpp b/contents/stacks_and_queues/code/c++/stack.cpp new file mode 100644 index 000000000..5324cb521 --- /dev/null +++ b/contents/stacks_and_queues/code/c++/stack.cpp @@ -0,0 +1,83 @@ + +#include +using namespace std; + +namespace my { + /** + *implementation using parameterised linked list + * [value][next] -> [value][next] -> ... -> [value][next] + * (top Node) (intermediat Nodes) (dummy Node) + * left most Node represents_top element of stack + * right most Node is a dummy Node + */ + template + struct Node { + /** + * next: will store next Node(right) address + */ + T value; + Node* next; + Node(const T& V) : value(V), next(nullptr) { } + }; + + template + class stack { + private: + /** + * variabel:_top points to left most node , right most Node is dummy Node + * count: will keep track of current number of elements present in stack excluding dummy Node + */ + Node* _top; + size_t count; + public: + stack() : _top(nullptr), count(0ULL) { + _top = new Node(0); // creating a dummy node + } + + void push(const T& element) { + Node* buffer = new Node(element); + buffer->next = _top; + _top = buffer; + count = count + 1; + } + + void pop() { + if (count > 0) { + Node* buffer = _top; + _top = _top->next; + count = count - 1; + delete buffer; + } + } + + T& top() const { return _top->value; } + // returning reference can very usefull if someone wants to modify top element + + size_t size() const { return count; } + + bool empty() const { return count == 0; } + + ~stack() { + for (Node* pointer = _top; pointer != nullptr;) { + Node* buffer = pointer; + pointer = pointer->next; + delete buffer; + } + } + }; +} + +int main() { + my::stack S; + S.push(0); + S.push(1); + S.push(2); + S.push(3); + cout << "size: " << S.size() << endl; + S.top() = 10; + while (S.empty() != true) { + cout << "element: " << S.top() << endl; + S.pop(); + } + return 0; +} diff --git a/contents/stacks_and_queues/stacks_and_queues.md b/contents/stacks_and_queues/stacks_and_queues.md index 89a77be9a..4d9908e55 100644 --- a/contents/stacks_and_queues/stacks_and_queues.md +++ b/contents/stacks_and_queues/stacks_and_queues.md @@ -20,6 +20,8 @@ Here is a simple implementation of a stack: [import, lang:"typescript"](code/typescript/stack.ts) {% sample lang="java" %} [import, lang:"java"](code/java/Stack.java) +{% sample lang = "cpp"%} +[import, lang:"cpp"](code/c++/stack.cpp) {% endmethod %} Here is a simple implementation of a queue: @@ -28,6 +30,8 @@ Here is a simple implementation of a queue: [import, lang:"typescript"](code/typescript/queue.ts) {% sample lang="java" %} [import, lang:"java" ](code/java/Queue.java) +{% sample lang = "cpp"%} +[import, lang:"cpp"](code/c++/queue.cpp) {% endmethod %} From feb723c8e0459ecc487bae657abbc6f8f97b7fd9 Mon Sep 17 00:00:00 2001 From: ishwar Date: Sun, 14 Nov 2021 13:52:57 +0530 Subject: [PATCH 2/9] improved some comments --- contents/stacks_and_queues/code/c++/queue.cpp | 20 +++++++++---------- contents/stacks_and_queues/code/c++/stack.cpp | 9 +++------ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp index f94140e26..f2a406850 100644 --- a/contents/stacks_and_queues/code/c++/queue.cpp +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -1,17 +1,16 @@ #include using namespace std; - namespace my { /** - *implementation using parameterised linked list + * parameterised type implementation using linked list * [value][next] -> [value][next] -> ... -> [value][next] -> [value][next] - * (front Node) (intermediat elements) (rear Node) (dummy Node) + * (front Node) (intermediat Nodes) (rear Node) (dummy Node) */ template struct Node { /** - * next: will store next Node(right) address + * next: will store right Node address */ T value; Node* next; @@ -22,8 +21,9 @@ namespace my { class queue { private: /** - * variabel: _front points to left most node , right most Node is dummy Node - * count: will keep track of current number of elements present in stack excluding dummy Node + * _front : points to left most node + * count: keeps track of current number of elements present in queue excluding dummy Node + * rear: points to most recent Node added into the queue, which is just left size of dummy Node */ Node* _front; Node* rear; @@ -36,9 +36,9 @@ namespace my { void push(const T& element) { Node* new_node = new Node(element); // create New Node if (count > 0) { - new_node->next = rear->next; // make buffer point to dummy Node - rear->next = new_node; // make rear Node point to buffer - rear = new_node; // make rear pointer to point to buffer + new_node->next = rear->next; // make new Node point to dummy Node + rear->next = new_node; // make rear Node point to new Node + rear = new_node; // make rear Node's pointer to point to new Node } else { new_node->next = rear; rear = _front = new_node; @@ -80,9 +80,7 @@ int main() { Q.push(1); Q.push(2); Q.push(3); - cout << "count: " << Q.size() << endl; - Q.front() = 10; while (Q.empty() != true) { diff --git a/contents/stacks_and_queues/code/c++/stack.cpp b/contents/stacks_and_queues/code/c++/stack.cpp index 5324cb521..0d8b61e0a 100644 --- a/contents/stacks_and_queues/code/c++/stack.cpp +++ b/contents/stacks_and_queues/code/c++/stack.cpp @@ -1,4 +1,3 @@ - #include using namespace std; @@ -7,13 +6,11 @@ namespace my { *implementation using parameterised linked list * [value][next] -> [value][next] -> ... -> [value][next] * (top Node) (intermediat Nodes) (dummy Node) - * left most Node represents_top element of stack - * right most Node is a dummy Node */ template struct Node { /** - * next: will store next Node(right) address + * next: will store right Node address */ T value; Node* next; @@ -24,8 +21,8 @@ namespace my { class stack { private: /** - * variabel:_top points to left most node , right most Node is dummy Node - * count: will keep track of current number of elements present in stack excluding dummy Node + * _top: points to left most node + * count: keeps track of current number of elements present in stack excluding dummy Node */ Node* _top; size_t count; From 2a89d6082a5a425840f4f77ae65eb56e478e1b65 Mon Sep 17 00:00:00 2001 From: Ishwar <60176567+ishwar00@users.noreply.github.com> Date: Sun, 14 Nov 2021 15:21:42 +0530 Subject: [PATCH 3/9] Update contents/stacks_and_queues/code/c++/queue.cpp adding version T const& front() const Co-authored-by: Dimitri Belopopsky --- contents/stacks_and_queues/code/c++/queue.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp index f2a406850..49d30515f 100644 --- a/contents/stacks_and_queues/code/c++/queue.cpp +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -57,6 +57,7 @@ namespace my { } T& front() const { return _front->value; } + T const& front() const { return _front->value; } // returning reference can very usefull if someone wants to modify _front element size_t size() const { return count; } From 1bfc0c431c1605b3546204dc56df857ec65114a2 Mon Sep 17 00:00:00 2001 From: Ishwar <60176567+ishwar00@users.noreply.github.com> Date: Sun, 14 Nov 2021 15:23:34 +0530 Subject: [PATCH 4/9] Update contents/stacks_and_queues/code/c++/queue.cpp removing unnecessary comment Co-authored-by: Dimitri Belopopsky --- contents/stacks_and_queues/code/c++/queue.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp index 49d30515f..55e74f049 100644 --- a/contents/stacks_and_queues/code/c++/queue.cpp +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -58,7 +58,6 @@ namespace my { T& front() const { return _front->value; } T const& front() const { return _front->value; } - // returning reference can very usefull if someone wants to modify _front element size_t size() const { return count; } From 9d9a24542870451e9d58309a9040e70c7c84272c Mon Sep 17 00:00:00 2001 From: ishwar Date: Sun, 14 Nov 2021 23:35:30 +0530 Subject: [PATCH 5/9] improved implementation --- contents/stacks_and_queues/code/c++/queue.cpp | 82 +++++++++---------- contents/stacks_and_queues/code/c++/stack.cpp | 58 ++++++------- 2 files changed, 67 insertions(+), 73 deletions(-) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp index 55e74f049..5dbcd639e 100644 --- a/contents/stacks_and_queues/code/c++/queue.cpp +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -1,11 +1,13 @@ #include -using namespace std; +#include +#include namespace my { + const char endl = '\n'; /** - * parameterised type implementation using linked list - * [value][next] -> [value][next] -> ... -> [value][next] -> [value][next] - * (front Node) (intermediat Nodes) (rear Node) (dummy Node) + * implementation using linked list + * [value][next] -> [value][next] -> ... -> [value][next] + * (front Node) (intermediat Nodes) (rear Node) */ template struct Node { @@ -13,61 +15,63 @@ namespace my { * next: will store right Node address */ T value; - Node* next; - Node(const T& V) : value(V), next(nullptr) { } + std::shared_ptr> next; + Node(const T& V) : value(V) { } }; template class queue { private: /** - * _front : points to left most node - * count: keeps track of current number of elements present in queue excluding dummy Node - * rear: points to most recent Node added into the queue, which is just left size of dummy Node + * front_pointer: points to left most node + * count: keeps track of current number of elements present in queue + * rear_pointer: points to most recent Node added into the queue, which is right most Node */ - Node* _front; - Node* rear; + std::shared_ptr> front_pointer; + std::shared_ptr> rear_pointer; size_t count; public: - queue() : _front(nullptr), rear(nullptr), count(0ULL) { - _front = rear = new Node(0); // creating a dummy Node - } + queue() : count(0ULL) { } void push(const T& element) { - Node* new_node = new Node(element); // create New Node + auto new_node = std::make_shared>(element); if (count > 0) { - new_node->next = rear->next; // make new Node point to dummy Node - rear->next = new_node; // make rear Node point to new Node - rear = new_node; // make rear Node's pointer to point to new Node + new_node->next = front_pointer; + front_pointer = new_node; } else { - new_node->next = rear; - rear = _front = new_node; + rear_pointer = front_pointer = new_node; } count = count + 1; } void dequeue() { - if (count > 0) { - Node* buffer = _front; - _front = _front->next; + if (count > 1) { + front_pointer = front_pointer->next; + count = count - 1; + } else if (count == 1) { + front_pointer.reset(); + rear_pointer.reset(); count = count - 1; - delete buffer; } - rear = (count != 0) ? rear : _front; } - T& front() const { return _front->value; } - T const& front() const { return _front->value; } + T& front() { + assert(count > 0 && "calling front on an empty queue"); + return front_pointer->value; + } + + T const& front() const { + assert(count > 0 && "calling front on an empty queue"); + return front_pointer->value; + } size_t size() const { return count; } bool empty() const { return count == 0; } ~queue() { - for (Node* pointer = _front; pointer != nullptr;) { - Node* buffer = pointer; - pointer = pointer->next; - delete buffer; + while (front_pointer.get() != nullptr) { + front_pointer = front_pointer->next; } } }; @@ -75,26 +79,14 @@ namespace my { int main() { my::queue Q; - Q.push(0); - Q.push(1); - Q.push(2); Q.push(3); - cout << "count: " << Q.size() << endl; + std::cout << "count: " << Q.size() << my::endl; Q.front() = 10; while (Q.empty() != true) { - cout << "element: " << Q.front() << endl; - Q.dequeue(); - } - - Q.push(3); - Q.push(6); - cout << "count: " << Q.size() << endl; - while (Q.empty() != true) { - cout << "element: " << Q.front() << endl; + std::cout << "element: " << Q.front() << my::endl; Q.dequeue(); } return 0; } - diff --git a/contents/stacks_and_queues/code/c++/stack.cpp b/contents/stacks_and_queues/code/c++/stack.cpp index 0d8b61e0a..3c91824e3 100644 --- a/contents/stacks_and_queues/code/c++/stack.cpp +++ b/contents/stacks_and_queues/code/c++/stack.cpp @@ -1,11 +1,14 @@ #include -using namespace std; +#include +#include namespace my { + const char endl = '\n'; /** - *implementation using parameterised linked list + * implementation using linked list * [value][next] -> [value][next] -> ... -> [value][next] - * (top Node) (intermediat Nodes) (dummy Node) + * (top Node) (intermediat Nodes) + * left most Node represents top element of stack */ template struct Node { @@ -13,52 +16,54 @@ namespace my { * next: will store right Node address */ T value; - Node* next; - Node(const T& V) : value(V), next(nullptr) { } + std::unique_ptr> next; + Node(const T& V) : value(V) { } }; template class stack { private: /** - * _top: points to left most node - * count: keeps track of current number of elements present in stack excluding dummy Node + * top_pointer: points to left most node + * count: keeps track of current number of elements present in stack */ - Node* _top; + std::unique_ptr> top_pointer; size_t count; public: - stack() : _top(nullptr), count(0ULL) { - _top = new Node(0); // creating a dummy node - } + stack() : count(0ULL) { } void push(const T& element) { - Node* buffer = new Node(element); - buffer->next = _top; - _top = buffer; + auto new_node = std::make_unique>(element); + new_node->next = std::move(top_pointer); + top_pointer = std::move(new_node); count = count + 1; } void pop() { if (count > 0) { - Node* buffer = _top; - _top = _top->next; + top_pointer = std::move(top_pointer->next); count = count - 1; - delete buffer; } } - T& top() const { return _top->value; } - // returning reference can very usefull if someone wants to modify top element + T& top() { + assert(count > 0 and "calling top() on an empty stack"); + return top_pointer->value; + } + // returning mutable reference can very be usefull if someone wants to modify top element + + T const& top() const { + assert(count > 0 and "calling top() on an empty stack"); + return top_pointer->value; + } size_t size() const { return count; } bool empty() const { return count == 0; } ~stack() { - for (Node* pointer = _top; pointer != nullptr;) { - Node* buffer = pointer; - pointer = pointer->next; - delete buffer; + while (top_pointer.get() != nullptr) { + top_pointer = std::move(top_pointer->next); } } }; @@ -66,14 +71,11 @@ namespace my { int main() { my::stack S; - S.push(0); - S.push(1); - S.push(2); S.push(3); - cout << "size: " << S.size() << endl; + std::cout << "size: " << S.size() << my::endl; S.top() = 10; while (S.empty() != true) { - cout << "element: " << S.top() << endl; + std::cout << "element: " << S.top() << my::endl; S.pop(); } return 0; From 7af16dda7359f696b8e86f9066fa788ee2c3c3cc Mon Sep 17 00:00:00 2001 From: ishwar Date: Mon, 15 Nov 2021 00:18:51 +0530 Subject: [PATCH 6/9] fixed queue implementation --- contents/stacks_and_queues/code/c++/queue.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp index 5dbcd639e..377f361c5 100644 --- a/contents/stacks_and_queues/code/c++/queue.cpp +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -36,8 +36,8 @@ namespace my { void push(const T& element) { auto new_node = std::make_shared>(element); if (count > 0) { - new_node->next = front_pointer; - front_pointer = new_node; + rear_pointer->next = new_node; + rear_pointer = new_node; } else { rear_pointer = front_pointer = new_node; } @@ -79,10 +79,12 @@ namespace my { int main() { my::queue Q; - Q.push(0); + Q.push(-1); + Q.push(1); + Q.push(2); Q.push(3); std::cout << "count: " << Q.size() << my::endl; - Q.front() = 10; + Q.front() = 0; while (Q.empty() != true) { std::cout << "element: " << Q.front() << my::endl; From 7221c9b2b75788ff0d970e0dc41afb5ddd2279b1 Mon Sep 17 00:00:00 2001 From: ishwar Date: Wed, 17 Nov 2021 01:17:07 +0530 Subject: [PATCH 7/9] renamed queue API push as enqueue --- contents/stacks_and_queues/code/c++/queue.cpp | 24 +++++++++---------- contents/stacks_and_queues/code/c++/stack.cpp | 21 +++++++++------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/c++/queue.cpp index 377f361c5..3917668df 100644 --- a/contents/stacks_and_queues/code/c++/queue.cpp +++ b/contents/stacks_and_queues/code/c++/queue.cpp @@ -33,7 +33,7 @@ namespace my { public: queue() : count(0ULL) { } - void push(const T& element) { + void enqueue(const T& element) { auto new_node = std::make_shared>(element); if (count > 0) { rear_pointer->next = new_node; @@ -78,17 +78,15 @@ namespace my { } int main() { - my::queue Q; - Q.push(-1); - Q.push(1); - Q.push(2); - Q.push(3); - std::cout << "count: " << Q.size() << my::endl; - Q.front() = 0; + my::queue intQueue; + intQueue.enqueue(4); + intQueue.enqueue(5); + intQueue.enqueue(9); - while (Q.empty() != true) { - std::cout << "element: " << Q.front() << my::endl; - Q.dequeue(); - } - return 0; + int frontElement = intQueue.front(); + intQueue.dequeue(); + std::cout << frontElement << my::endl; + std::cout << intQueue.size() << my::endl; + std::cout << intQueue.front() << my::endl; + return 0; } diff --git a/contents/stacks_and_queues/code/c++/stack.cpp b/contents/stacks_and_queues/code/c++/stack.cpp index 3c91824e3..5a7c1151c 100644 --- a/contents/stacks_and_queues/code/c++/stack.cpp +++ b/contents/stacks_and_queues/code/c++/stack.cpp @@ -70,13 +70,16 @@ namespace my { } int main() { - my::stack S; - S.push(3); - std::cout << "size: " << S.size() << my::endl; - S.top() = 10; - while (S.empty() != true) { - std::cout << "element: " << S.top() << my::endl; - S.pop(); - } - return 0; + my::stack intStack; + + intStack.push(4); + intStack.push(5); + intStack.push(9); + + int topElement = intStack.top(); + intStack.pop(); + std::cout << topElement << my::endl; + std::cout << intStack.size() << my::endl; + std::cout << intStack.top() << my::endl; + return 0; } From b878ed0372049352c69ed54e6fc8b7806e6cb71a Mon Sep 17 00:00:00 2001 From: Dimitri Belopopsky Date: Wed, 12 Jan 2022 09:42:22 +0100 Subject: [PATCH 8/9] Rename code folder to cpp --- contents/stacks_and_queues/code/{c++ => cpp}/queue.cpp | 0 contents/stacks_and_queues/code/{c++ => cpp}/stack.cpp | 0 contents/stacks_and_queues/stacks_and_queues.md | 4 ++-- 3 files changed, 2 insertions(+), 2 deletions(-) rename contents/stacks_and_queues/code/{c++ => cpp}/queue.cpp (100%) rename contents/stacks_and_queues/code/{c++ => cpp}/stack.cpp (100%) diff --git a/contents/stacks_and_queues/code/c++/queue.cpp b/contents/stacks_and_queues/code/cpp/queue.cpp similarity index 100% rename from contents/stacks_and_queues/code/c++/queue.cpp rename to contents/stacks_and_queues/code/cpp/queue.cpp diff --git a/contents/stacks_and_queues/code/c++/stack.cpp b/contents/stacks_and_queues/code/cpp/stack.cpp similarity index 100% rename from contents/stacks_and_queues/code/c++/stack.cpp rename to contents/stacks_and_queues/code/cpp/stack.cpp diff --git a/contents/stacks_and_queues/stacks_and_queues.md b/contents/stacks_and_queues/stacks_and_queues.md index 57ae65654..e72857b96 100644 --- a/contents/stacks_and_queues/stacks_and_queues.md +++ b/contents/stacks_and_queues/stacks_and_queues.md @@ -21,7 +21,7 @@ Here is a simple implementation of a stack: {% sample lang="java" %} [import, lang:"java"](code/java/Stack.java) {% sample lang = "cpp"%} -[import, lang:"cpp"](code/c++/stack.cpp) +[import, lang:"cpp"](code/cpp/stack.cpp) [import, lang:"java"](code/java/StackTest.java) {% sample lang="rust" %} [import, lang:"rust"](code/rust/Stack.rs) @@ -34,7 +34,7 @@ Here is a simple implementation of a queue: {% sample lang="java" %} [import, lang:"java" ](code/java/Queue.java) {% sample lang = "cpp"%} -[import, lang:"cpp"](code/c++/queue.cpp) +[import, lang:"cpp"](code/cpp/queue.cpp) [import, lang:"java" ](code/java/QueueTest.java) {% sample lang="rust" %} [import, lang:"rust" ](code/rust/Queue.rs) From 00ee930a5617310988d9c682e3e723fd03ca1c90 Mon Sep 17 00:00:00 2001 From: Dimitri Belopopsky Date: Wed, 12 Jan 2022 09:46:43 +0100 Subject: [PATCH 9/9] Inline newlines --- contents/stacks_and_queues/code/cpp/queue.cpp | 7 +++---- contents/stacks_and_queues/code/cpp/stack.cpp | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/contents/stacks_and_queues/code/cpp/queue.cpp b/contents/stacks_and_queues/code/cpp/queue.cpp index 3917668df..009abbd06 100644 --- a/contents/stacks_and_queues/code/cpp/queue.cpp +++ b/contents/stacks_and_queues/code/cpp/queue.cpp @@ -3,7 +3,6 @@ #include namespace my { - const char endl = '\n'; /** * implementation using linked list * [value][next] -> [value][next] -> ... -> [value][next] @@ -85,8 +84,8 @@ int main() { int frontElement = intQueue.front(); intQueue.dequeue(); - std::cout << frontElement << my::endl; - std::cout << intQueue.size() << my::endl; - std::cout << intQueue.front() << my::endl; + std::cout << frontElement << '\n'; + std::cout << intQueue.size() << '\n'; + std::cout << intQueue.front() << '\n'; return 0; } diff --git a/contents/stacks_and_queues/code/cpp/stack.cpp b/contents/stacks_and_queues/code/cpp/stack.cpp index 5a7c1151c..0d13beda3 100644 --- a/contents/stacks_and_queues/code/cpp/stack.cpp +++ b/contents/stacks_and_queues/code/cpp/stack.cpp @@ -3,7 +3,6 @@ #include namespace my { - const char endl = '\n'; /** * implementation using linked list * [value][next] -> [value][next] -> ... -> [value][next] @@ -78,8 +77,8 @@ int main() { int topElement = intStack.top(); intStack.pop(); - std::cout << topElement << my::endl; - std::cout << intStack.size() << my::endl; - std::cout << intStack.top() << my::endl; + std::cout << topElement << '\n'; + std::cout << intStack.size() << '\n'; + std::cout << intStack.top() << '\n'; return 0; }