]> git.llucax.com Git - z.facultad/75.42/euler-oo.git/blobdiff - dllist.cpp
Correcciones.
[z.facultad/75.42/euler-oo.git] / dllist.cpp
index a2994fd467a6f8a75e7f0132bc3d4c883ee92d85..e34e78782bcb9f839cba9e8b80329db5ac3fef2d 100644 (file)
@@ -14,8 +14,6 @@
  * $Id$
  */
 
  * $Id$
  */
 
-// TODO metodos que devuelven NULL si la lista esta vacia.
-//      poner comentarios en línea simple?
 #include "dllist.h"
 
 DLList::DLList(void): first(NULL), current(NULL), last(NULL) {}
 #include "dllist.h"
 
 DLList::DLList(void): first(NULL), current(NULL), last(NULL) {}
@@ -126,6 +124,10 @@ bool DLList::push(void* data) {
 }
 
 void* DLList::shift(void) {
 }
 
 void* DLList::shift(void) {
+    // Si está vacía devuelve NULL.
+    if (this->first == NULL)  {
+        return NULL;
+    }
     /* Primer nodo */
     DLListNode* node = this->first;
     /* Datos del primer nodo. */
     /* Primer nodo */
     DLListNode* node = this->first;
     /* Datos del primer nodo. */
@@ -147,6 +149,10 @@ void* DLList::shift(void) {
 }
 
 void* DLList::pop(void) {
 }
 
 void* DLList::pop(void) {
+    // Si está vacía devuelve NULL.
+    if (this->first == NULL)  {
+        return NULL;
+    }
     /* Último nodo */
     DLListNode* node = this->last;
     /* Datos del último nodo. */
     /* Último nodo */
     DLListNode* node = this->last;
     /* Datos del último nodo. */
@@ -168,6 +174,10 @@ void* DLList::pop(void) {
 }
 
 void* DLList::remove_current(void) {
 }
 
 void* DLList::remove_current(void) {
+    // Si no hay un nodo seleccionado devuelve NULL.
+    if (this->current == NULL)  {
+        return NULL;
+    }
     /* Nodo actual */
     DLListNode* current = this->current;
     /* Datos del nodo actual. */
     /* Nodo actual */
     DLListNode* current = this->current;
     /* Datos del nodo actual. */