63 throw std::invalid_argument(
"link is not empty");
71 assert(
this not_eq
nullptr);
78 assert(
this not_eq
nullptr);
79 return next ==
nullptr;
85 assert(
this not_eq
nullptr);
98 assert(
this not_eq
nullptr);
99 assert(p not_eq
nullptr);
115 assert(
this not_eq
nullptr);
117 next = ret_val->next;
129 Iterator() : head(
nullptr), curr(
nullptr) { }
142 : head(head_ptr), curr(curr_ptr)
149 assert(curr !=
nullptr and head !=
nullptr);
155 assert(curr !=
nullptr and head !=
nullptr);
165 bool has_curr()
const 167 assert(head !=
nullptr);
168 return curr !=
nullptr;
174 assert(curr !=
nullptr and head !=
nullptr);
181 throw std::overflow_error(
"Not element in list");
182 return get_curr_ne();
186 bool is_in_first()
const {
return curr == head->next; }
189 void next_ne() noexcept
194 void next()
throw(std::exception, std::overflow_error)
197 throw std::overflow_error(
"Not next element in list");
202 bool operator == (
const Iterator & it)
const {
return curr == it.curr; }
205 bool operator != (
const Iterator & it)
const {
return curr != it.curr; }
207 bool verify(
Slink_Nc * l)
const {
return head == l; }
209 bool verify(
const Iterator & it)
const {
return head == it.head; }
Slink_Nc & operator=(const Slink_Nc &link)
Asignación; coloca enlace a que apunte a nullptr.
Definition: slink_nc.H:57
Slink_Nc * remove_next()
Definition: slink_nc.H:113
bool is_empty() const
Retorna true si this está vacÃo (apunta a nullptr)
Definition: slink_nc.H:76
Definition: slink_nc.H:42
Slink_Nc *& get_next()
Retorna el siguiente enlace.
Definition: slink_nc.H:83
void reset()
Reinicia enlace a que apunte a nullptr.
Definition: slink_nc.H:69
void insert(Slink_Nc *p)
Definition: slink_nc.H:96
Slink_Nc()
Constructor vacÃo.
Definition: slink_nc.H:49
Slink_Nc(const Slink_Nc &)
Constructor copia; coloca enlace a que apunte a nullptr.
Definition: slink_nc.H:52