Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class node_1 // Это вроде бы элемент списка
- {
- int name, count; // name - это номер элемента из графа, count - количество предшественников
- node_1 *next; // это поле - указатель на следующий элемент в списке
- node_2 *trailer; // это - указатель на трейлер (который вниз уходит)
- public:
- node_1() // конструктор по умолчанию, здесь все просто, задаем все поля нулевыми
- {
- name = 0;
- count = 0;
- next = NULL;
- trailer = NULL;
- }
- node_1(int _n) // конструктор с параметром, здесь мы задаем только имя, то есть номер элеманта графа, остальное нули
- {
- name = _n;
- count = 0;
- next = NULL;
- trailer = NULL;
- }
- ~node_1() // деструктор
- {
- delete next;
- delete trailer;
- }
- node_1 operator++() // Здесь мы добавляем количество предшественников
- {
- count++;
- return *this;
- }
- int GetName() // возвращает номер элемента в графе
- {
- return name;
- }
- node_1 *GetNext() // возвращает адрес на последователя
- {
- return next;
- }
- };
- class node_2 // Вроде бы это трейлер (элемент трейлера)
- {
- node_1 *ld; // указатель на последователя элемента, от которого идет этот трейлер
- node_2 *next; // указатель на следущий трейлер этого же элемента
- public:
- node_2() //конструктор по умолчанию, все поля заполняем нулями
- {
- next = NULL;
- ld = NULL;
- }
- node_2(node_1 *_ld) //конструктор с параметром, передаем элемент, к которому будет относится этот трейлер (элемент, от которого трейлер пойдет вниз)
- {
- ld = _ld;
- next = NULL;
- }
- node_1 GetLeader() // возврашает элемент, от которого идет этот трейлер
- {
- return *ld;
- }
- };
- class leader // Элемент списка
- {
- node_1 *First; //Указатель на голову
- public:
- leader() //конструктор по умолчанию
- {
- First = new node_1;
- }
- ~leader() //деструктор, удаляем элементы по порядку в цикле, чтобы ничего не улетело вникуда
- {
- node_1 *s = First->GetNext();
- while (s)
- {
- node_1 *s_2 = s;
- s = s->GetNext();
- delete s_2;
- }
- }
- node_1 *GetTail() //Не совсем понял, но вроде бы это возвращает указатель на последний элемент (возможно еще это указатель на элемент после крайнего
- {
- node_1 *s_1 = First->GetNext();
- while (s_1->GetNext())
- s_1 = s_1->GetNext();
- return s_1;
- }
- leader operator+(int n) //Ну, это добавление элемента в список лидеров, здесь все просто
- {
- node_1 *s = GetTail(); //Просто создаем элемент, который будет хвостом
- s_2(n); // создаем элемент, n - номер элемента в графе
- s->GetNext() = s_2; // указываем, что этот элемент - новый хвост
- return *this; // возвращаем указатель на голову
- }
- };
- int _tmain(int argc, _TCHAR* argv[])
- {
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement