Я хочу создать очень простой список имен, похожий на std, с такими библиотеками, как «поодиночке» и «вдвойне».Как я могу модульный код, чтобы я мог использовать только переменные, которые мне нужны (круговые против некруглых)?
Я полагаю, что я могу просто добавить 'struct node * prev' к структуре, которую использует список, но если пользователь решит не делать циклический, это всегда будет 'nullptr', вызывая ненужныепеременная.Второй способ, который я представляю, - это иметь 2 разных класса ...
namespace list{
struct snode{
int data;
struct snode* next;
};
class singly{
public:
singly();
singly(unsigned long long amount=0, bool circular=0, bool userCreated=0, bool empty=0);
~singly();
void create(unsigned long long amount=0, bool circular=0, bool userCreated=0, bool empty=0);
void display();
void destroy();
private:
snode* HEAD;
unsigned long long amount;
bool empty;
bool circular;
snode* TAIL;
};
}
Я ожидаю, что с этим пространством имен будет сделано следующее ..
include "singly.h"
using namespace list;
singly list;
list.create(5);
list.display();
list.destroy();
или что-то не будет использоваться пространством именеще ...
list::singly list(7, 1, 0, 1);
list.display();
list.~list();
Хотя это не задание или что-то еще, я хочу, чтобы это было моим делом, когда мне нужно создать связанный список когда-либо в моей жизни.В конце концов, я хочу создать «дерево» пространства имен и продолжить его.Я почти хочу, чтобы это было так же легко использовать как абстрактный тип данных 'string'.