diff --git a/Module 6/delete_at_any_pos.cpp b/Module 6/delete_at_any_pos.cpp index 39d5e53..31ea3be 100644 --- a/Module 6/delete_at_any_pos.cpp +++ b/Module 6/delete_at_any_pos.cpp @@ -1,9 +1,67 @@ -#include +#include using namespace std; + +class Node +{ + public: + int val; + Node* next; + Node(int val) + { + this->val = val; + this->next = NULL; + } +}; + +void insert_at_tail(Node* &head, Node* &tail,int val) +{ + Node *newnode = new Node(val); + if(head == NULL) + { + head = newnode; + tail = newnode; + return; + } + tail->next = newnode; + tail = newnode; +} + +void print_linked_list(Node* head) +{ + Node* tmp = head; + while(tmp != NULL) + { + cout << tmp->val << endl; + tmp = tmp->next; + } +} + +void delete_at_any_pos(Node* &head, int idx){ + Node* tmp= head; + for(int i=1; inext; + } + Node* deleteNode = tmp->next; + tmp->next= tmp->next->next; + delete deleteNode; + +} int main() { - int val = 10; - int *ptr = &val; - cout << *ptr << endl; + Node* head = NULL; + Node* tail = NULL; + + int val; + while(true) + { + cin >> val; + if(val == -1) + { + break; + } + insert_at_tail(head,tail,val); + } + delete_at_any_pos(head,2); + print_linked_list(head); return 0; -} \ No newline at end of file +}