Linked List Core Implementation

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> using namespace std; struct Node { int data; Node *next; }; Node *head = NULL; Node* createNewNode(int d){ Node *temp = new Node(); temp->data = d; temp->next = NULL; return temp; } void addNodeAtBegin(int d){ if(head == NULL){ head = createNewNode(d); return; } Node* temp1 = createNewNode(d); temp1->next = head; head = temp1; } void addNodeAtEnd(int d){ if(head == NULL){ head = createNewNode(d); return; } Node* temp3 = head; while(temp3->next != NULL){ temp3 = temp3->next; } Node* temp4 = createNewNode(d); temp3->next = temp4; } void print(){ Node* temp2 = head; while(temp2->next !=NULL) { cout<<temp2->data<<" "; temp2 = temp2->next; } cout<<temp2->data; cout<<"\n"; } bool search(int d){ Node *temp = head; while(temp->next != NULL){ if(temp->data == d){ return true; break; } temp = temp->next; } if(temp->data == d) return true; else return false; } void del(int n){ Node *temp = head; if(n==1){ head = temp->next; delete(temp); return; } for(int i=0 ; i<n-2; i++){ temp = temp->next; } Node * temp1 = temp->next; temp->next = temp1->next; delete (temp1); } void length(){ Node* temp = head; int c =1; while(temp->next != NULL){ temp = temp->next; c++; } cout<<c; } void get(int n){ Node *temp = head; for(int i=0; i<n-1 ; i++){ temp = temp -> next; } cout<<temp->data; } int max(){ int max = head->data; Node *temp = head; while(temp->next != NULL){ temp = temp->next; if(temp->data > max){ max = temp->data; } } return max; } int min(){ int min = head->data; Node *temp = head; while(temp->next != NULL){ temp = temp->next; if(temp->data < min){ min = temp->data; } } return min; } void convertToCircular(){ Node *temp = head; while(temp->next != NULL){ temp = temp->next; } temp->next = head; } int countNodesInCircularLinkedList(){ Node *temp = head; int c =1; while(temp!=NULL){ c++; temp=temp->next; if(temp->next == head){ break; } } return c; } void exchange(){ Node *temp = head; Node* prev; while(temp->next != NULL){ prev = temp; temp = temp->next; } temp->next = head->next; prev->next = head; head->next = NULL; head = temp; } int main() { addNodeAtBegin(3); addNodeAtBegin(2); addNodeAtBegin(5); addNodeAtBegin(6); addNodeAtBegin(8); print(); exchange(); print(); convertToCircular(); del(5); cout<<countNodesInCircularLinkedList(); }
Editor Settings
Theme
Key bindings
Full width
Lines