Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void doubleList::doubleAddEnd(int item, doubleNode *&head, doubleNode *&tail)
- {
- doubleNode *newNode = new doubleNode;
- newNode->next = NULL;
- newNode->data = item;
- if (head == NULL)
- {
- newNode->perv = NULL;
- head = tail = newNode;
- }
- else
- {
- newNode->perv = tail;
- tail->next = newNode;
- tail = newNode;
- }
- }
- //Lab functions
- void doubleList::doubleAddBegin(int item, doubleNode *&head, doubleNode *&tail)
- {
- doubleNode *newNode = new doubleNode;
- newNode->perv = NULL;
- newNode->data = item;
- if (head == NULL)
- {
- newNode->next = NULL;
- head = tail = newNode;
- }
- else
- {
- newNode->next = head;
- head->perv = newNode;
- head = newNode;
- }
- }
- //Lab functions
- void doubleList::doubleAddByPosition(int item, doubleNode *&head, doubleNode *&tail, int pos)
- {
- doubleNode *newNode = new doubleNode;
- newNode->next = NULL;
- newNode->data = item;
- doubleNode *temp;
- temp = head;
- int tempos = 1;
- if (head == NULL)
- {
- cout << "\nEmpty list, location not found\n";
- }
- else
- {
- while (tempos != pos)
- {
- if (temp == NULL)
- {
- cout << "The required location not found\n";
- }
- else
- {
- temp = temp->next;
- }
- tempos++;
- }
- }
- if (temp->next == NULL)
- {
- temp->next = newNode;
- newNode->perv = temp;
- newNode->next = NULL;
- tail = newNode;
- }
- else
- {
- newNode->perv = temp;
- newNode->next = temp->next;
- temp->next->perv = newNode;
- temp->next = newNode;
- }
- }
- //lab function
- void doubleList::doubleAddByData(int item, doubleNode *&head, doubleNode *&tail, int value)
- {
- doubleNode *newNode = new doubleNode;
- newNode->next = NULL;
- newNode->data = item;
- doubleNode *temp;
- temp = head;
- if (head == NULL)
- {
- cout << "\nEmpty list, location not found\n";
- }
- else
- {
- while (temp->data != value)
- {
- if (temp == NULL)
- {
- cout << "The required location not found\n";
- }
- else
- {
- temp = temp->next;
- }
- }
- }
- if (temp->next == NULL)
- {
- temp->next = newNode;
- newNode->perv = temp;
- newNode->next = NULL;
- tail = newNode;
- }
- else
- {
- newNode->perv = temp;
- newNode->next = temp->next;
- temp->next->perv = newNode;
- temp->next = newNode;
- }
- }
- //lab function
- void doubleList::doubleDisplay(doubleNode *&head)
- {
- doubleNode *temp = new doubleNode;
- temp = head;
- if (head == NULL)
- {
- cout << "Empty list\n";
- }
- else
- {
- while (temp != NULL)
- {
- cout << "--| " << temp->data << endl;
- temp = temp->next;
- }
- }
- cout << endl;
- }
- //lab function
- void doubleList::doubleDeleteEnd(doubleNode *&head, doubleNode *&tail)
- {
- if (head == NULL)
- {
- cout << "Empty list\n";
- return;
- }
- else
- {
- doubleNode *temp;
- temp = tail;
- if (temp->next == NULL && temp->perv == NULL)
- {
- head = tail = NULL;
- delete temp;
- }
- else
- {
- tail = tail->perv;
- tail->next = NULL;
- delete temp;
- }
- }
- }
- //lab function
- void doubleList::doubleDeleteBegin(doubleNode *&head)
- {
- if (head == NULL)
- {
- cout << "Empty list\n";
- return;
- }
- else
- {
- doubleNode *temp;
- temp = head;
- if (temp->next == NULL)
- {
- head = NULL;
- delete temp;
- }
- else
- {
- head = head->next;
- head->perv = NULL;
- delete temp;
- }
- }
- }
- //lab function
- void doubleList::doubleDeleteByPosition(int pos, doubleNode *&head, doubleNode *&tail)
- {
- doubleNode *temp;
- temp = head;
- int tempos = 1;
- if (head == NULL)
- {
- cout << "Empty list\n";
- return;
- }
- else
- {
- while (tempos != pos)
- {
- if (temp = NULL)
- {
- cout << "The required position not found\n";
- return;
- }
- else
- {
- temp = temp->next;
- }
- tempos++;
- }
- }
- if (temp->next == NULL && temp->perv == NULL)
- {
- head = tail = NULL;
- delete temp;
- }
- else if (temp == head)
- {
- head = head->next;
- head->perv = NULL;
- delete temp;
- }
- else if (temp->next == NULL)
- {
- tail = tail->perv;
- tail->next = NULL;
- delete temp;
- }
- else
- {
- temp->perv->next = temp->next;
- temp->next->perv = temp->perv;
- delete temp;
- }
- }
- //lab function
- void doubleList::doubleDeleteByData(int value, doubleNode *&head, doubleNode *&tail)
- {
- doubleNode *temp;
- temp = head;
- if (head == NULL)
- {
- cout << "Empty list\n";
- return;
- }
- else
- {
- while (temp->data != value)
- {
- if (temp = NULL)
- {
- cout << "The required position not found\n";
- return;
- }
- else
- {
- temp = temp->next;
- }
- }
- }
- if (temp->next == NULL && temp->perv == NULL)
- {
- head = tail = NULL;
- delete temp;
- }
- else if (temp == head)
- {
- head = head->next;
- head->perv = NULL;
- delete temp;
- }
- else if (temp->next == NULL)
- {
- tail = tail->perv;
- tail->next = NULL;
- delete temp;
- }
- else
- {
- temp->perv->next = temp->next;
- temp->next->perv = temp->perv;
- delete temp;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment