doubly linked list
chamanEiqbal
c_cpp
2 years ago
1.5 kB
5
Indexable
#include <iostream>
using namespace std;
class Node {
public:
int data;
Node* prev;
Node* next;
};
Node* head = new Node();
Node* tail = new Node();
void insertAtBeginning(Node* head, int data) {
Node* temp = new Node;
temp->prev = NULL;
head->next = temp;
temp->data = data;
temp->next = NULL;
tail->prev = temp;
}
void insertAtEnd(Node* tail, int data) {
Node* temp = new Node();
temp->data = data;
Node* last = tail->prev;
temp->prev = last;
last->next = temp;
tail->prev = temp;
temp->next = NULL;
}
void deleteAtBeginning(Node* head) {
Node* first = head->next;
Node* second = first->next;
head->next = second;
second->prev = NULL;
free(first);
}
void deleteAtEnd(Node* tail) {
Node* last = tail->prev;
Node* secondlast = last->prev;
tail->prev = secondlast;
secondlast->next = NULL;
free(last);
}
void displayBack(Node* tail) {
Node* current = tail->prev;
while(current != NULL) {
cout << current->data << endl;
current = current->prev;
}
}
void displayForward(Node* head) {
Node* current = head->next;
while(current != NULL) {
cout << current->data << endl;
current = current->next;
}
}
int main() {
insertAtBeginning(head, 1);
insertAtEnd(tail, 3);
insertAtEnd(tail, 5);
deleteAtBeginning(head);
deleteAtEnd(tail);
displayBack(tail);
return 0;
}Editor is loading...