-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdllnode.cpp
66 lines (64 loc) · 1.8 KB
/
dllnode.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include "dllnode.h"
#include "object.h"
#include <iostream>
using std::cout;
using std::endl;
// Definición de los métodos de la clase DLLNode
// Constructor por Defecto de la Clase. Raramente Usado
DLLNode::DLLNode(){
next = prev = NULL;
data = NULL;
}
// Constructor especial de la Clase. Este es el más utilizado
DLLNode::DLLNode(Object* aData){
data = aData;
}
// Constructor especial de la Clase. Raramente Usado
DLLNode::DLLNode(Object* aData, DLLNode* aPrev, DLLNode* aNext){
data = aData;
next = aNext;
prev = aPrev;
}
/*
* Destructor Súper Poderoso de la Clase *
* Este destructor liberará la memoria que esté ocupando la data a la que *
* apunte el nodo, de la misma manera, liberará al nodo siguiente, en el caso *
* de que hubiera alguno. De esta manera se libera todo lo que tenga el nodo y *
* sus siguientes. *
* Este destructor es muy útil, sin embargo hay que tener cuidado al querer *
* sólo liberar un nodo, pues este deberá estar suelto. *
*/
DLLNode::~DLLNode(){
if (data)
delete data;
if (next)
delete next;
}
// Impresión del Nodo, sólo manda a imprimir el contenido de la data.
void DLLNode::print()const{
data->print();
}
// Método Accesor de Next
DLLNode* DLLNode::getNext()const{
return next;
}
// Método Accesor de Prev
DLLNode* DLLNode::getPrev()const{
return prev;
}
// Método Mutador de Next
void DLLNode::setNext(DLLNode* aNext){
next = aNext;
}
// Método Mutador de Prev
void DLLNode::setPrev(DLLNode* aPrev){
prev = aPrev;
}
// Método Accesor de Data
Object* DLLNode::getData()const{
return data;
}
// Método Mutador de Data
void DLLNode::setData(Object* aData){
data = aData;
}