#ifndef LIST_HPP #define LIST_HPP #include #include "tools.hpp" #include namespace components{ struct unNode{ unNode *p_next; tls::Value value; unNode(); }; struct dualNode { tls::Value value; dualNode *p_next; dualNode *p_prev; dualNode(); }; } namespace strs{ struct unarList { unarList(); components::unNode operator() (tls::Size set_size); components::unNode& operator[] (tls::Index index); void pop(); void term(); void remove(); void append(tls::Value new_value); tls::Size get_size(); protected: tls::Size size; components::unNode *first_element; components::unNode *last_element; }; struct dualList { dualList(); components::dualNode operator() (tls::Size set_size); components::dualNode& operator[] (tls::Index index); void pop(); void term(); void remove(); void append(tls::Value new_value); tls::Size get_size(); protected: tls::Size size; components::dualNode *first_element; components::dualNode *last_element; }; } #endif