72 lines
1.1 KiB
C++
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
|