* Taller de Programación (75.42).
*
* Ejercicio Número 3:
- * TODO
+ * Lista de figuras.
*
* Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
* Puede copiar, modificar y distribuir este programa bajo los términos de
#ifndef DLLIST_H
#define DLLIST_H
-/** Nodo de la lista doblemente enlazada. */
+#include <cstdlib>
+
+/// Nodo de la lista doblemente enlazada.
struct DLListNode {
- /** Puntero al nodo anterior. */
+
+ /// Puntero al nodo anterior.
DLListNode* prev;
- /** Datos almacenados en el nodo. */
+
+ /// Datos almacenados en el nodo.
void* data;
- /** Puntero al próximo nodo. */
+
+ /// Puntero al próximo nodo.
DLListNode* next;
+
+ /// Constructor.
+ DLListNode(DLListNode* prev = NULL, void* data = NULL,
+ DLListNode* next = NULL): prev(prev), data(data), next(next) {}
+
};
-/**
- * Lista doblemente enlazada.
- */
+/// Lista doblemente enlazada.
class DLList {
protected:
- /** Puntero al primer nodo. */
- DLListNode* first;
- /** Puntero al nodo actual. */
- DLListNode* current;
- /** Puntero al último nodo. */
- DLListNode* last;
+
+ /// Puntero al primer nodo.
+ DLListNode* _first;
+
+ /// Puntero al nodo actual.
+ DLListNode* _current;
+
+ /// Puntero al último nodo.
+ DLListNode* _last;
public:
- /**
- * Crea una nueva lista.
- */
+
+ /// Crea una nueva lista.
DLList(void);
- /**
- * Libera la memoria ocupada por una lista.
- */
- ~DLList(void);
+ /// Libera la memoria ocupada por una lista.
+ virtual ~DLList(void);
/**
* Indica si está vacía.
*/
void* remove_current(void);
+};
+
#endif /* DLLIST_H */