Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
st_dent
64 / 64 / 3
Регистрация: 05.07.2010
Сообщений: 219
#1

однородный двухсвязный список - C++

15.11.2010, 22:50. Просмотров 480. Ответов 0
Метки нет (Все метки)

Задача - с помощью классов реализовать список объектов типа Circle (круг).
Структура
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#pragma once
#include "circle.h"
class list
{
    class node{
        friend class list;
        node* pPrev; //указатель на предыдущий node
        node* pNext; //указатель на следующий node
        circle m_data; //данные
        node();
        node(node*pP, const circle* pc);//конструктор, посредством которого создаваемый Node «подключается» в список
        ~node();//деструктор должен «исключать» уничтожаемый Node из списка
    };
    node* pHead;    //указатель на фиктивный элемент, который является признаком начала списка
    node* pTail;    //указатель на фиктивный элемент, который является признаком конца списка
    unsigned int m_size;    //количество элементов в списке
public:
    list(void);
    ~list(void);
};

Проблема с конструктором, посредством которого создаваемый Node «подключается» в список
C++
1
2
3
4
5
6
7
list::node::node(node*pP,const circle* pc):m_data(pc)
{
    pPrev=pP;
    pNext=pP->pNext;
    pP->pNext=this;
    pNext->pPrev=this;
}
Не могу понять, что здесь в теле конструктора происходит
Предполагаю, что так:
pPrev текущего нода направляем на созданный,
pNext текущего нода направляем на pNext созданного,
pNext созданного направляем на текущий нод,
последняя строка непонятна вообще, кроме того непонятен общий смысл этих действий.

Помогите разобраться, пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2010, 22:50     однородный двухсвязный список
Посмотрите здесь:

C++ Добавление и удаление- Линейный однородный список (ЛОС)
C++ Двухсвязный Кольцевой Список
C++ Двухсвязный Список
Двухсвязный список и оператор [] C++
C++ Шаблон двухсвязный список, храним указатель не элемент
C++ перевернуть двухсвязный линейный список
двухсвязный список C++
C++ двухсвязный список
Двухсвязный список (разбиение кода на файлы) C++
C++ Двухсвязный список: заполнить в порядке возрастания, организовать поиск
C++ Добавление элементов в двухсвязный список
Двухсвязный список в классе, метод удаления C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 14:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru