#include "List.hpp" // Components // unNode components::unNode::unNode() { this->p_next = nullptr; this->value = 0; } // Skeleton tls::Size strs::Skeleton::get_size() { return this->size; } void strs::Skeleton::pop() { if (this->size == 0) return; else if (this->first_element->p_next == nullptr){ delete first_element; first_element = nullptr; } if (this->first_element->p_next != nullptr){ components::unNode *tmp = this->first_element->p_next; delete first_element; first_element = tmp; } --(this->size); } // unarList strs::unarList::unarList(){ this->first_element = nullptr; this->last_element = nullptr; this->size = 0; } void strs::unarList::pop() { if (this->first_element->p_next != nullptr){ components::unNode *tmp = this->first_element->p_next; delete first_element; first_element = tmp; } } void strs::unarList::remove(){ components::unNode *tmp = this->first_element; while (tmp->p_next->p_next != nullptr) tmp = tmp->p_next; tmp->p_next = nullptr; delete last_element; last_element = tmp; --(this->size); } void strs::unarList::term() { components::unNode *iter_node = first_element; for (tls::Index i = 0; i < size; i++){ std::cout<< iter_node->value << '\t' << iter_node << "\t point on: " << iter_node->p_next << std::endl; iter_node = iter_node->p_next; } std::cout << "-------------------------------------------------------------" << std::endl; } void strs::unarList::append(tls::Value new_value) { this->last_element->p_next = new components::unNode; this->last_element = this->last_element->p_next; this->last_element->value = new_value; ++(this->size); } components::unNode strs::unarList::operator() (tls::Size get_size){ size = get_size; components::unNode *iter_node = first_element; for (tls::Index i = 0; i < size-1; i++){ iter_node->p_next = new components::unNode; iter_node = iter_node->p_next; iter_node->value = i+1; } last_element = iter_node; return *first_element; } components::unNode& strs::unarList::operator[] (tls::Index index){ components::unNode *tmp = this->first_element; for (int j = 0; j < index; j++){ tmp = tmp->p_next; } return *tmp; }