From ddc3d2ce7c457a69ab971d7bf0d529eb0670dade Mon Sep 17 00:00:00 2001 From: Alrik Appelfeldt <alrap417@student.liu.se> Date: Wed, 28 Feb 2024 20:17:32 +0000 Subject: [PATCH] Upload New File --- list/linked_list.cc | 187 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 list/linked_list.cc diff --git a/list/linked_list.cc b/list/linked_list.cc new file mode 100644 index 0000000..ca2c222 --- /dev/null +++ b/list/linked_list.cc @@ -0,0 +1,187 @@ +#include "linked_list.h" + +//Insert node at head +//skap tom lista + + List::List(): + head{nullptr}, tail{nullptr} + {} + + + + List::~List() { + + if(List_Is_Empty() == false ){ + + Node* my_node = head; + + while (my_node != tail){ + my_node = my_node->next; + delete my_node->previous; + } + delete my_node; + head = nullptr; + tail = nullptr; + list_size = 0; + +} +} + + + bool List::List_Is_Empty(){ + if (head == nullptr) + { + return true; + } + else + { + return false; + } + } + + + //List::Node::Node(int new_value): + // value{new_value} + //{} + + + + + + +//omskriven insert funktion SOM INTE ÄR TESTAD + + + /* void List::Insert_Head_Node(int value){ + + if(List_Is_Empty() == true ){ + + Node* my_node = new Node(value); + my_node->previous = nullptr; + my_node->next = nullptr; + head = my_node; + tail = my_node; + } + else + { + Node* my_node = new Node(value); + my_node->previous = tail; + my_node->next = nullptr; + tail->next = my_node; + tail = my_node; + + + } + } + +*/ + + + + + + + void List::Insert_Head_Node(int value){ + Node* my_node = new Node(value); + my_node->previous = nullptr; + my_node->next = nullptr; + head = my_node; + tail = my_node; + } + + //insert node at tail + +void List::Insert_Tail_Node(int value){ +Node* my_node = new Node(value); +my_node->previous = tail; +my_node->next = nullptr; +tail->next = my_node; +tail = my_node; +} + + +void List::printlist(Node* head){ +Node* traverser = head; +while(traverser != nullptr) { + cout<<traverser->value<<endl; + traverser = traverser->next; +} +} + + +int main() + +{ + +List newlist; + +newlist.Insert_Head_Node(5); +newlist.Insert_Tail_Node(3); +newlist.Insert_Tail_Node(1); + +newlist.printlist(newlist.head); + +return 0; +} + + +/* + + List::Node* Head; + List::Node* Tail; + + + List::Node* node = new List::Node(); + node->Value = 1; + node->previous = nullptr; + node->next = nullptr; + Head = node; + Tail = node; + +*/ + + + + + + +/*void printlist(List::Node*Head){ +List::Node* Traverser = Head; +while(Traverser != nullptr) { + cout<<Traverser->Value<<endl; + Traverser = Traverser->next; +} + + + +int main() +{ + Link* Head; + Link* Tail; + + +//Insert node at head + Link* link = new Link(); + link->Value = 1; + link->previous = nullptr; + link->next = nullptr; + Head = link; + Tail = link; +insert node at tail + link = new Link(); + link->Value = 1; + link->previous = Tail; + link->next = nullptr; + Tail->next = link; + Tail = link; +// node 3 (same as node 2) + link = new Link(); + link->Value = 1; + link->previous = Tail; + link->next = nullptr; + Tail->next = link; + Tail = link; + +printlist(Head); + +}*/ \ No newline at end of file -- GitLab