Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <climits>
- using namespace std;
- struct Node {
- int value = 0;
- Node *next = NULL;
- Node *prev = NULL;
- Node(int value) {
- this->value = value;
- }
- };
- class List {
- public:
- void pushTail(int valToAdd) {
- Node * newNode = new Node(valToAdd);
- if (head == NULL) {
- head = newNode;
- tail = newNode;
- return;
- }
- tail->next = newNode;
- newNode -> prev = tail;
- tail = newNode;
- };
- int popTail()
- {
- if (head == NULL)
- {
- cout << "List is empty" << endl;
- }
- else
- if (head == tail) {
- int del = head -> value;
- delete head;
- head = NULL;
- tail = NULL;
- cout << del << " <- Deleted Tail" << endl;
- return del;
- }
- else {
- int del = tail->value;
- tail = tail -> prev;
- delete tail->next;
- tail->next = NULL;
- cout << del << " <- Deleted Tail" << endl;
- return del;
- }
- };
- int popHead()
- {
- Node *temp = head;
- if (head -> next == NULL)
- {
- int del = temp->value;
- delete head;
- head = NULL;
- tail = NULL;
- cout << del << " <- Deleted Tail" << endl;
- return del;
- }
- else {
- head = temp -> next;
- temp -> prev = NULL;
- int del = temp->value;
- delete temp;
- cout << del << " <- Deleted Tail" << endl;
- return del;
- }
- };
- void pushHead(int valToAdd) {
- Node * newNode = new Node(valToAdd);
- if (head == NULL) {
- head = newNode;
- tail = newNode;
- return;
- }
- newNode->next = head;
- head -> prev = newNode;
- head = newNode;
- };
- void printAll() {
- Node * buff = head;
- cout<<"print List:" << endl;
- while (buff != NULL) {
- cout<< buff->value << endl;
- buff = buff->next;
- }
- };
- ~List(){
- while (head) {
- tail = head -> next;
- delete head;
- head = tail;
- }
- }
- private:
- Node * head = NULL;
- Node * tail = NULL;
- };
- int main() {
- List list;
- list.pushHead(1);
- list.pushHead(0);
- list.pushHead(2);
- list.pushHead(6);
- list.pushTail(9);
- list.printAll();
- list.popHead();
- list.popHead();
- list.popTail();
- list.popHead();
- list.popHead();
- list.printAll();
- list.pushHead(5);
- list.printAll();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement