-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclase_nodo.hh
82 lines (78 loc) · 1.92 KB
/
clase_nodo.hh
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
/**
* @brief Clase Nodo Simplemente Enlazado
* @tparam T
*/
template <typename T>
class Nodo_SE {
public:
/// Constructores
Nodo_SE() :
next_{nullptr},
data_{} {} /// Constructor por defecto
Nodo_SE(Nodo_SE<T>* const ptr, const T& data) :
next_{ptr},
data_{data} {} /// Constructor estándar
Nodo_SE(const Nodo_SE<T>& copia) { this = copia; } /// Constructor copia
/// Destructores
~Nodo_SE() { next_ = nullptr; }
/// Métodos
/// Friend
/// Sobrecargas Operadores
/// Sobrecargas Conversiones
/// Getters
const Nodo_SE<T>* next() const { return next_; }
const T& data() const { return data_; }
/// Setters
void next(Nodo_SE<T>* const ptr) { next_ = ptr; }
void data(const T& data) { data_ = data; }
Nodo_SE<T>*& next() { return next_; }
T& data() { return data_; }
protected:
private:
/// Atributos
Nodo_SE<T>* next_;
T data_;
};
/**
* @brief Clase Nodo Doblemente Enlazado
* @tparam T
*/
template <typename T>
class Nodo_DE {
public:
/// Constructores
Nodo_DE() :
next_{nullptr},
data_{} {} /// Constructor por defecto
Nodo_DE(Nodo_DE<T>* const ptr, const T& data) :
next_{ptr},
data_{data} {} /// Constructor estándar
Nodo_DE(const Nodo_DE<T>& copia) { this = copia; } /// Constructor copia
/// Destructores
~Nodo_DE() {
next_ = nullptr;
prev_ = nullptr;
}
/// Métodos
/// Friend
/// Sobrecargas Operadores
/// Sobrecargas Conversiones
/// Getters
const Nodo_DE<T>* next() const { return next_; }
const Nodo_DE<T>* prev() const { return prev_; }
const T& data() const { return data_; }
/// Setters
void next(Nodo_DE<T>* const ptr) { next_ = ptr; }
void prev(Nodo_DE<T>* const ptr) { prev_ = ptr; }
void data(const T& data) { data_ = data; }
Nodo_DE<T>*& next() { return next_; }
Nodo_DE<T>*& prev() { return prev_; }
T& data() { return data_; }
protected:
private:
/// Atributos
Nodo_DE<T>* next_;
Nodo_DE<T>* prev_;
T data_;
};