69 lines
884 B
C++
69 lines
884 B
C++
#ifndef LIST_HPP
|
|
#define LIST_HPP
|
|
|
|
#include <iostream>
|
|
#include "tools.hpp"
|
|
#include <strstream>
|
|
|
|
namespace components{
|
|
|
|
struct unNode{
|
|
unNode *p_next;;
|
|
tls::Value value;
|
|
|
|
unNode();
|
|
};
|
|
|
|
struct dualNode:unNode {
|
|
tls::Value *p_prev;;
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace strs{
|
|
struct Skeleton {
|
|
|
|
tls::Size get_size();
|
|
|
|
void pop();
|
|
void term();
|
|
void remove();
|
|
void append(tls::Value new_value);
|
|
|
|
protected:
|
|
tls::Size size;
|
|
|
|
};
|
|
|
|
struct unarList:Skeleton {
|
|
|
|
components::unNode operator() (tls::Size get_size);
|
|
components::unNode& operator[] (tls::Index index);
|
|
|
|
unarList();
|
|
|
|
components::unNode *first_element;
|
|
components::unNode *last_element;
|
|
|
|
};
|
|
|
|
// struct dualList:unarList {
|
|
//
|
|
// dualList() {
|
|
// first_element = new components::dual_Node;
|
|
//
|
|
//
|
|
// }
|
|
//
|
|
//
|
|
//
|
|
// };
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|