3 Nodes Linked List Implementaion
Single Linked list
#include<iostream>
using namespace std;
struct Node{
int data;
Node* next;
Node(int value){
data = value;
next = nullptr;
}
};
int main(){
Node* node1 = new Node(10);
Node* node2 = new Node(20);
Node* node3 = new Node(30);
Node* head = node1;
node1->next = node2;
node2->next = node3;
Node* current = head;
while(current != nullptr){
cout<<current->data << "->";
current = current->next;
}
cout<<"nullptr";
return 0;
}
_________________________________
Circular Linked list
#include<iostream>
using namespace std;
struct Node{
int data;
Node* next;
Node(int value){
data = value;
next = nullptr;
}
};
int main(){
// crate nodes
Node* node1 = new Node(10);
Node* node2 = new Node(20);
Node* node3 = new Node(30);
//connection
Node* head = node1;
node1->next =node2;
node2->next = node3;
node3->next = head; // make it circular
//Traversing
Node* p = head;
do{
cout<<p->data<<"->";
p = p->next;
}while(p != head);
cout<<"(head)";
return 0;
}
_______________________________________
Double Linked list
#include<iostream>
using namespace std;
struct Node{
int data;
Node* next;
Node* prev; // DLL
Node(int value){
data = value;
next = nullptr;
prev = nullptr; //DLL
}
};
int main(){
// crate nodes
Node* node1 = new Node(10);
Node* node2 = new Node(20);
Node* node3 = new Node(30);
//connection
Node* head = node1;
node1->next =node2;
//node1->prev =nullptr;
node2->next = node3;
node2->prev =node1;
//node3->next = nullptr;
node3->prev =node2;
//Traversing
Node* p = head;
while(p != nullptr){
cout<<p->data<<"->";
p = p->next;
}
cout<<"nullptr";
return 0;
}
________________________________________________