Let us see the C++ source code of Insert at the end in Doubly Link List.
Doubly Link List – insert at the end
struct DoublyNode* head = NULL;
void insert(int newdata) {
struct DoublyNode* newdoublyNode = (struct DoublyNode*) malloc(sizeof(struct DoublyNode));
newdoublyNode->data = newdata;
newdoublyNode->NextNode = NULL;
newdoublyNode->PreviousNode = head;
if(head != NULL)
{head->NextNode = newdoublyNode ;
}
head = newdoublyNode;
}
Complete source code
//Insert at the end in Doubly Link List C++ - by t4tutorials.com
#include <iostream>
#include <cstdlib>
using namespace std;
struct DoublyNode {
int data;
struct DoublyNode *PreviousNode;
struct DoublyNode *NextNode;
};
struct DoublyNode* head = NULL;
void insert(int newdata) {
struct DoublyNode* newdoublyNode = (struct DoublyNode*) malloc(sizeof(struct DoublyNode));
newdoublyNode->data = newdata;
newdoublyNode->NextNode = NULL;
newdoublyNode->PreviousNode = head;
if(head != NULL)
{head->NextNode = newdoublyNode ;
}
head = newdoublyNode;
}
void display() {
struct DoublyNode* ptr;
ptr = head;
while(ptr != NULL) {
cout<< ptr->data <<" ";
ptr = ptr->PreviousNode;
}
}
int main() {
insert(4);
insert(5);
insert(6);
cout<<"The doubly linked list is: ";
display();
return 0;
}
Output
The doubly linked list is: 6 5 4
Doubly Link List – delete at the end in Doubly Link List
void del() {
struct DoublyNode* temp;
if(head==NULL)
{cout<<"empty";
}
else
{ temp = head;
if(head->NextNode==NULL && head->PreviousNode == NULL)
{
free(temp);
free(head);
}
}
head = head->PreviousNode;
head->NextNode = NULL;
free(temp);
}
Complete source code
//Insert and delete at the end in Doubly Link List (right most node among other nodes) C++ - by t4tutorials.com
#include <iostream>
#include <cstdlib>
using namespace std;
struct DoublyNode {
int data;
struct DoublyNode *PreviousNode;
struct DoublyNode *NextNode;
};
struct DoublyNode* head = NULL;
void insert(int newdata) {
struct DoublyNode* newdoublyNode = (struct DoublyNode*) malloc(sizeof(struct DoublyNode));
newdoublyNode->data = newdata;
newdoublyNode->NextNode = NULL;
newdoublyNode->PreviousNode = head;
if(head != NULL)
{head->NextNode = newdoublyNode ;
}
head = newdoublyNode;
}
void del() {
struct DoublyNode* temp;
if(head==NULL)
{cout<<"empty";
}
else
{ temp = head;
if(head->NextNode==NULL && head->PreviousNode == NULL)
{
free(temp);
free(head);
}
}
head = head->PreviousNode;
head->NextNode = NULL;
free(temp);
}
void display() {
struct DoublyNode* ptr;
ptr = head;
while(ptr != NULL) {
cout<< ptr->data <<" ";
ptr = ptr->PreviousNode;
}
}
int main() {
insert(4);
insert(5);
insert(6);
del();
cout<<"The doubly linked list is: ";
display();
return 0;
}