UnarLinkList/List.cpp

87 lines
2.2 KiB
C++

#include "List.hpp"
// Components
// dualNode
components::dualNode::dualNode() {
this->p_next = nullptr;
this->p_prev = nullptr;
this->value = 0;
}
// Structures
strs::dualList::dualList(){
this->first_element = new components::dualNode;
this->last_element = this->first_element;
this->size = 1;
}
components::dualNode strs::dualList::operator() (tls::Size set_size){
this->size = set_size;
components::dualNode *iter_node = first_element;
for (tls::Index i = 0; i < size-1; i++){
iter_node->p_next = new components::dualNode;
iter_node->p_next->p_prev = iter_node;
iter_node = iter_node->p_next;
iter_node->value = 0;
}
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;
//}
//
//
//void strs::unarList::pop() {
// if (this->size == 0) return;
// if (this->first_element->p_next != nullptr){
// components::unNode *tmp = this->first_element->p_next;
// delete first_element;
// first_element = tmp;
// }
// else {
// delete first_element;
// first_element = nullptr;
// }
// --(this->size);
//}
//
//
//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::dualList::term() {
components::dualNode *iter_node = first_element;
for (tls::Index i = 0; i < size; i++){
std::cout <<"previed by: " << iter_node->p_prev << '\t' << "value: " << iter_node->value << '\t' << "own &: "<< 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);
//}