diff options
| author | rPatrickWarner <[email protected]> | 2024-05-11 11:27:43 -0700 |
|---|---|---|
| committer | rPatrickWarner <[email protected]> | 2024-05-11 11:27:43 -0700 |
| commit | 7d1e737ec906d4c75aa9c104198959700096dcb4 (patch) | |
| tree | d974f43b79676cb010da2d3f2b35545fa72823db | |
| parent | changes (diff) | |
| download | homework-1-reecepwarner-homework3.tar.xz homework-1-reecepwarner-homework3.zip | |
created insert and deletion functionshomework3
| -rw-r--r-- | CST 126/Homework2/nextdest.txt | bin | 128 -> 93 bytes | |||
| -rw-r--r-- | CST 126/Homework3/SinglyLinkedList.hpp | 65 | ||||
| -rw-r--r-- | CST 126/Homework3/main.cpp | 2 |
3 files changed, 56 insertions, 11 deletions
diff --git a/CST 126/Homework2/nextdest.txt b/CST 126/Homework2/nextdest.txt Binary files differindex 0be8381..1efd69c 100644 --- a/CST 126/Homework2/nextdest.txt +++ b/CST 126/Homework2/nextdest.txt diff --git a/CST 126/Homework3/SinglyLinkedList.hpp b/CST 126/Homework3/SinglyLinkedList.hpp index 22118d6..1d30f0d 100644 --- a/CST 126/Homework3/SinglyLinkedList.hpp +++ b/CST 126/Homework3/SinglyLinkedList.hpp @@ -1,6 +1,6 @@ #ifndef SINGLY_LINKED_LIST_HPP #define SINGLY_LINKED_LIST_HPP - +#include <iostream> template<typename T> struct ListNode { @@ -20,30 +20,77 @@ struct SinglyLinkedList template<typename T> inline bool Append(SinglyLinkedList<T>* list, ListNode<T>* node) { - - //we have list - //we need to add node to end - //Empty set first node as head if (list->_size == 0) { list->_head = node; list->_size++; return true; } - - //ifnotempty - ListNode<T>* TravelNode = nullptr; + ListNode<T>* TraverseNode = nullptr; for (TravelNode = list->_head; TravelNode->_next!= nullptr;) { TravelNode = TravelNode->_next; } TravelNode->_next = node; - return true;//ifsuccess + return true; } +template<typename T> +inline bool Prepend(SinglyLinkedList<T>* list, ListNode<T>* node) +{ + if (list->_size == 0) + { + list->_head = node; + list->_size++; + return true; + } + node->_next = list->_head; + list->_head = node; + return true; + +} +template<typename T> +inline bool RemoveFirst(SinglyLinkedList<T>* list, ListNode<T>* node) +{ + if (list->_size == 0) + { + std::cout << "Empty list... there is nothing to delete!" << std::endl; + return true; + } + ListNode<T>* Temp = list->_head; + list->_head = node->_next; + list->_size--; + delete Temp; + return true; +} +template<typename T> +inline bool RemoveLast(SinglyLinkedList<T>* list, ListNode<T>* node) +{ + if (list->_size == 0) + { + std::cout << "Empty list... there is nothing to delete!" << std::endl; + return true; + } + if (list->size == 1) + { + delete list->_head; + list->_head = nullptr; + list->_size--; + return true; + } + ListNode<T>* TraverseNode = list->_head; + while (TraverseNode->_next->_next != nullptr) + { + TraverseNode = TraverseNode->_next; + } + delete TraverseNode->_next; + TraverseNode->_next = nullptr; + list->_size--; + return true; +} #endif
\ No newline at end of file diff --git a/CST 126/Homework3/main.cpp b/CST 126/Homework3/main.cpp index 2536baa..9939411 100644 --- a/CST 126/Homework3/main.cpp +++ b/CST 126/Homework3/main.cpp @@ -11,7 +11,5 @@ int main(const int argc, char* argv[]) - - return 0; }
\ No newline at end of file |