UnarLinkList/List.hpp

72 lines
1.1 KiB
C++

#ifndef LIST_HPP
#define LIST_HPP
#include <iostream>
#include "tools.hpp"
#include <sstream>
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