aboutsummaryrefslogtreecommitdiff
path: root/CST 126/Homework 3
diff options
context:
space:
mode:
authorWesleyR <[email protected]>2024-06-09 23:09:50 -0700
committerWesleyR <[email protected]>2024-06-09 23:09:50 -0700
commitcb041a37b810a5dfa04c1c7f4315f9c3bbc8df0c (patch)
tree61b0d3d555e1596b5156e2d18e015497b438c2e4 /CST 126/Homework 3
parentUpdating before template node branch (diff)
downloadhomework-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.vcxproj1
-rw-r--r--CST 126/Homework 3/Homework 3.vcxproj.filters3
-rw-r--r--CST 126/Homework 3/LinkedListNodes.cpp23
-rw-r--r--CST 126/Homework 3/node.hpp26
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