diff options
| author | WesleyR <[email protected]> | 2024-06-09 23:09:50 -0700 |
|---|---|---|
| committer | WesleyR <[email protected]> | 2024-06-09 23:09:50 -0700 |
| commit | cb041a37b810a5dfa04c1c7f4315f9c3bbc8df0c (patch) | |
| tree | 61b0d3d555e1596b5156e2d18e015497b438c2e4 /CST 126/Homework 3 | |
| parent | Updating before template node branch (diff) | |
| download | homework-1-wesleyr23-develop.tar.xz homework-1-wesleyr23-develop.zip | |
Submission for HW 3, In-Class Exercise 3, and In-Class Exercise 4HEADdevelopTemplate_Node
Diffstat (limited to 'CST 126/Homework 3')
| -rw-r--r-- | CST 126/Homework 3/Homework 3.vcxproj | 1 | ||||
| -rw-r--r-- | CST 126/Homework 3/Homework 3.vcxproj.filters | 3 | ||||
| -rw-r--r-- | CST 126/Homework 3/LinkedListNodes.cpp | 23 | ||||
| -rw-r--r-- | CST 126/Homework 3/node.hpp | 26 |
4 files changed, 43 insertions, 10 deletions
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 @@ <ClInclude Include="SinglyLinkedList.hpp" /> </ItemGroup> <ItemGroup> + <ClCompile Include="LinkedListNodes.cpp" /> <ClCompile Include="program.cpp" /> </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 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 @@ <ClCompile Include="program.cpp"> <Filter>Source Files</Filter> </ClCompile> + <ClCompile Include="LinkedListNodes.cpp"> + <Filter>Header Files</Filter> + </ClCompile> </ItemGroup> </Project>
\ 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<typename T> + class singly_linked_node : Node<T> + { + protected: + singly_linked_node* _next{ nullptr }; + + }; + + template<typename T> + class doubly_linked_node final : singly_linked_node<T> + { + 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<typname T> + template<typename T> 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<typename T> + Node<T>::Node(const T& data) : _data(data) {}; + template<typename T> + T& Node<T>::Data() + { + return _data; + } template<typename T> - T Node<T>::Data() + T Node<T>::Data() const { - return T(); + return _data; } template<typename T> - void Node<T>::Data(T data) + void Node<T>::Data(const T& data) { _data = data; } -}
\ No newline at end of file +} + +#endif
\ No newline at end of file |