aboutsummaryrefslogtreecommitdiff
path: root/CST 126/Homework3
diff options
context:
space:
mode:
authorrPatrickWarner <[email protected]>2024-05-29 20:02:38 -0700
committerrPatrickWarner <[email protected]>2024-05-29 20:02:38 -0700
commita3535ec86e9d4ca6eda27817d33e0e7bac4b8562 (patch)
treeb9bc7f2170aae6cad1f9c7ec774adee978d52220 /CST 126/Homework3
parentcleaned up and added some unit tests (diff)
parentadded singly and doubly linked node classes (diff)
downloadhomework-1-reecepwarner-a3535ec86e9d4ca6eda27817d33e0e7bac4b8562.tar.xz
homework-1-reecepwarner-a3535ec86e9d4ca6eda27817d33e0e7bac4b8562.zip
merging template node branch into develop
Diffstat (limited to 'CST 126/Homework3')
-rw-r--r--CST 126/Homework3/Homework3.vcxproj1
-rw-r--r--CST 126/Homework3/Homework3.vcxproj.filters3
-rw-r--r--CST 126/Homework3/Node.hpp25
-rw-r--r--CST 126/Homework3/linked_list_node.hpp26
-rw-r--r--CST 126/Homework3/main.cpp1
5 files changed, 48 insertions, 8 deletions
diff --git a/CST 126/Homework3/Homework3.vcxproj b/CST 126/Homework3/Homework3.vcxproj
index 0625066..59ad698 100644
--- a/CST 126/Homework3/Homework3.vcxproj
+++ b/CST 126/Homework3/Homework3.vcxproj
@@ -133,6 +133,7 @@
<ClCompile Include="main.cpp" />
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="linked_list_node.hpp" />
<ClInclude Include="Node.hpp" />
<ClInclude Include="SinglyLinkedList.hpp" />
</ItemGroup>
diff --git a/CST 126/Homework3/Homework3.vcxproj.filters b/CST 126/Homework3/Homework3.vcxproj.filters
index 6f86576..86c6279 100644
--- a/CST 126/Homework3/Homework3.vcxproj.filters
+++ b/CST 126/Homework3/Homework3.vcxproj.filters
@@ -26,5 +26,8 @@
<ClInclude Include="Node.hpp">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="linked_list_node.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project> \ No newline at end of file
diff --git a/CST 126/Homework3/Node.hpp b/CST 126/Homework3/Node.hpp
index 1bfbff2..bf2371d 100644
--- a/CST 126/Homework3/Node.hpp
+++ b/CST 126/Homework3/Node.hpp
@@ -1,15 +1,14 @@
#ifndef NODE_HPP
#define NODE_HPP
-namespace CST_126
+namespace CST126
{
- template<typename T>
+ template<typename T> //this is just a generic container to hold data
class Node
{
public:
Node() = default;
- Node(const T& Data);
-
+ Node(const T& data);
~Node() = default;
@@ -17,15 +16,19 @@ namespace CST_126
T Data() const;
void Data(const T& Data);
+ void Data(const T& data);
+ void Data(T& data);
+
private:
- T _data{ 0 };
+ T _data{};
};
+
template<typename T>
- Node<T>::Node(const T& Data) : _data(Data) {};
+ inline Node<T>::Node(const T& data) : _data(data) { };
template<typename T>
inline T& Node<T>::Data()
@@ -40,9 +43,15 @@ namespace CST_126
}
template<typename T>
- inline void Node<T>::Data(const T& Data)
+ inline void Node<T>::Data(const T& data)
+ {
+ _data = data;
+ }
+
+ template<typename T>
+ inline void Node<T>::Data(T& data)
{
- _data = Data;
+ _data = data;
}
}
diff --git a/CST 126/Homework3/linked_list_node.hpp b/CST 126/Homework3/linked_list_node.hpp
new file mode 100644
index 0000000..42731a7
--- /dev/null
+++ b/CST 126/Homework3/linked_list_node.hpp
@@ -0,0 +1,26 @@
+#ifndef LINKED_LIST_NODE
+#define LINKED_LIST_NODE
+#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/Homework3/main.cpp b/CST 126/Homework3/main.cpp
index 07c4dbc..fb631b8 100644
--- a/CST 126/Homework3/main.cpp
+++ b/CST 126/Homework3/main.cpp
@@ -7,5 +7,6 @@
int main(const int argc, char* argv[])
{
+
return 0;
} \ No newline at end of file