Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. void DoubleLinked::AddAfter(Date elem, Date after)
  2. {
  3.     Node *temp = (Node*)malloc(sizeof(Node));
  4.     temp->elem = elem;
  5.  
  6.     Node* findAfterNode = find(after);
  7.  
  8.     if (head == NULL) {
  9.         temp->Prev = NULL;
  10.         head = tail = temp;
  11.         return;
  12.     }
  13.     if (findAfterNode != NULL && findAfterNode != tail) {
  14.         temp->Next = findAfterNode->Next;
  15.         temp->Prev = findAfterNode;
  16.         findAfterNode->Next->Prev = temp;
  17.         findAfterNode->Next = temp;
  18.     }
  19.     else if (findAfterNode != NULL && findAfterNode == tail) {
  20.         temp->Next = NULL;
  21.         temp->Prev = findAfterNode;
  22.         tail = temp;
  23.         findAfterNode->Next = temp;
  24.     }
  25. }
  26.  
  27. void DoubleLinked::AddBefore(Date elem, Date before)
  28. {
  29.     Node *temp = (Node*)malloc(sizeof(Node));
  30.     temp->elem = elem;
  31.  
  32.     Node* findAfterNode = find(before);
  33.  
  34.     if (head == NULL) {
  35.         temp->Prev = NULL;
  36.         head = tail = temp;
  37.         return;
  38.     }
  39.     if (findAfterNode != NULL && findAfterNode != head) {
  40.         temp->Next = findAfterNode;
  41.         temp->Prev = findAfterNode->Prev;
  42.         findAfterNode->Prev->Next = temp;
  43.         findAfterNode->Prev = temp;
  44.     }
  45.     else if (findAfterNode != NULL && findAfterNode == head) {
  46.         temp->Next = findAfterNode;
  47.         temp->Prev = NULL;
  48.         head = temp;
  49.         findAfterNode->Prev = temp;
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement