From cb041a37b810a5dfa04c1c7f4315f9c3bbc8df0c Mon Sep 17 00:00:00 2001 From: WesleyR Date: Sun, 9 Jun 2024 23:09:50 -0700 Subject: Submission for HW 3, In-Class Exercise 3, and In-Class Exercise 4 --- CST 126/Homework 3/Homework 3.vcxproj | 1 + CST 126/Homework 3/Homework 3.vcxproj.filters | 3 +++ CST 126/Homework 3/LinkedListNodes.cpp | 23 +++++++++++++++++++++++ CST 126/Homework 3/node.hpp | 26 ++++++++++++++++---------- 4 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 CST 126/Homework 3/LinkedListNodes.cpp (limited to 'CST 126/Homework 3') diff --git a/CST 126/Homework 3/Homework 3.vcxproj b/CST 126/Homework 3/Homework 3.vcxproj index e0dff7d..067f362 100644 --- a/CST 126/Homework 3/Homework 3.vcxproj +++ b/CST 126/Homework 3/Homework 3.vcxproj @@ -131,6 +131,7 @@ + diff --git a/CST 126/Homework 3/Homework 3.vcxproj.filters b/CST 126/Homework 3/Homework 3.vcxproj.filters index b27b6ea..48d9321 100644 --- a/CST 126/Homework 3/Homework 3.vcxproj.filters +++ b/CST 126/Homework 3/Homework 3.vcxproj.filters @@ -26,5 +26,8 @@ Source Files + + Header Files + \ No newline at end of file diff --git a/CST 126/Homework 3/LinkedListNodes.cpp b/CST 126/Homework 3/LinkedListNodes.cpp new file mode 100644 index 0000000..e45b2de --- /dev/null +++ b/CST 126/Homework 3/LinkedListNodes.cpp @@ -0,0 +1,23 @@ +#ifndef LINKED_LIST_NODES_HPP +#define LINKED_LIST_NODES_HPP + +#include "node.hpp" + +namespace CST126 +{ + template + class singly_linked_node : Node + { + protected: + singly_linked_node* _next{ nullptr }; + + }; + + template + class doubly_linked_node final : singly_linked_node + { + protected: + doubly_linked_node* _prev{ nullptr }; + }; +} +#endif \ No newline at end of file diff --git a/CST 126/Homework 3/node.hpp b/CST 126/Homework 3/node.hpp index ac89141..44b4142 100644 --- a/CST 126/Homework 3/node.hpp +++ b/CST 126/Homework 3/node.hpp @@ -1,12 +1,9 @@ #ifndef NODE_HPP #define NODE_HPP - - - namespace CST126 { - template + template class Node { public: @@ -16,27 +13,36 @@ namespace CST126 ~Node() = default; T& Data(); - T Value() const; + T Data() const; void Data(const T& data); private: - T _data; + T _data{}; }; + template + Node::Node(const T& data) : _data(data) {}; + template + T& Node::Data() + { + return _data; + } template - T Node::Data() + T Node::Data() const { - return T(); + return _data; } template - void Node::Data(T data) + void Node::Data(const T& data) { _data = data; } -} \ No newline at end of file +} + +#endif \ No newline at end of file -- cgit v1.2.3