Redirect output after taking snapshots
[c11tester.git] / stl-model.h
index 74aaee698f0d9a05e74b030cf0e4cb285bc2fe12..d787a2d7951d1cb0589f219a2678a7a4060f7ccd 100644 (file)
@@ -60,9 +60,9 @@ public:
                mllnode<_Tp> *tmp = head;
                head = head->next;
                if (head == NULL)
-                 tail = NULL;
+                       tail = NULL;
                else
-                 head->prev = NULL;
+                       head->prev = NULL;
                delete tmp;
                _size--;
        }
@@ -71,9 +71,9 @@ public:
                mllnode<_Tp> *tmp = tail;
                tail = tail->prev;
                if (tail == NULL)
-                 head = NULL;
+                       head = NULL;
                else
-                 tail->next = NULL;
+                       tail->next = NULL;
                delete tmp;
                _size--;
        }
@@ -126,7 +126,7 @@ public:
                if (tail == node) {
                        tail = node->prev;
                } else {
-                       tail->next->prev = node->prev;
+                       node->next->prev = node->prev;
                }
                mllnode<_Tp> *next = node->next;
                delete node;
@@ -214,13 +214,40 @@ public:
                _size++;
        }
 
+       sllnode<_Tp>* add_front(_Tp val) {
+               sllnode<_Tp> * tmp = new sllnode<_Tp>();
+               tmp->prev = NULL;
+               tmp->next = head;
+               tmp->val = val;
+               if (head == NULL)
+                       tail = tmp;
+               else
+                       head->prev = tmp;
+               head = tmp;
+               _size++;
+               return tmp;
+       }
+
+       sllnode<_Tp> * add_back(_Tp val) {
+               sllnode<_Tp> * tmp = new sllnode<_Tp>();
+               tmp->prev = tail;
+               tmp->next = NULL;
+               tmp->val = val;
+               if (tail == NULL)
+                       head = tmp;
+               else tail->next = tmp;
+               tail = tmp;
+               _size++;
+               return tmp;
+       }
+
        void pop_front() {
                sllnode<_Tp> *tmp = head;
                head = head->next;
                if (head == NULL)
-                 tail = NULL;
+                       tail = NULL;
                else
-                 head->prev = NULL;
+                       head->prev = NULL;
                delete tmp;
                _size--;
        }
@@ -229,9 +256,9 @@ public:
                sllnode<_Tp> *tmp = tail;
                tail = tail->prev;
                if (tail == NULL)
-                 head = NULL;
+                       head = NULL;
                else
-                   tail->next = NULL;
+                       tail->next = NULL;
                delete tmp;
                _size--;
        }
@@ -246,7 +273,7 @@ public:
                _size=0;
        }
 
-       void insertAfter(sllnode<_Tp> * node, _Tp val) {
+       sllnode<_Tp> * insertAfter(sllnode<_Tp> * node, _Tp val) {
                sllnode<_Tp> *tmp = new sllnode<_Tp>();
                tmp->val = val;
                tmp->prev = node;
@@ -258,6 +285,7 @@ public:
                        tmp->next->prev = tmp;
                }
                _size++;
+               return tmp;
        }
 
        void insertBefore(sllnode<_Tp> * node, _Tp val) {
@@ -284,7 +312,7 @@ public:
                if (tail == node) {
                        tail = node->prev;
                } else {
-                       tail->next->prev = node->prev;
+                       node->next->prev = node->prev;
                }
 
                sllnode<_Tp> *next = node->next;
@@ -346,7 +374,7 @@ public:
        }
 
        type back() const {
-               return array[size - 1];
+               return array[_size - 1];
        }
 
        void resize(uint psize) {