![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Гость_Leksey |
|
|||
|
Unregistered |
Мне необходимо создать связанный список. Хочу реализовать его объектом.
Имеется класс узел: class Node { public: Node *prev; Node *next; CSprite *dat; Node(CSprite *tempor) { dat=tempor; next=0; prev=0; } }; и собственно, класс, реализующий связанный список class List { public: Node *pbeg, *pend; //function & variable members for links List() { pbeg=0; pend=0; } //functions-members void add(CSprite *tmp); bool remove(Node *cur); void show(); //end links }; Есть функции добавления узла, удаления, вывода всего списка. Мне нужно еще сделать так, чтобы при удалении узла он заменялся бы связанным списком. Поясняю: был список: List1: x->y->z y удалили, при удалении y на его место должен встать объет List2: a->b->c List1: x->a->b->c->z Я так понимаю объект класса List который будет всавляться надо хранить в классе node, а List описывается после Node, поэтому в Node нельзя хранить указатель на List. Конечно тут все мутно описано, но кто разберется в моей задаче, прошу помочь. Может быть вообще у меня подход неправильный к решению этой задачи? |
|||
|
||||
| Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Если есть возможность использовать STL (нет, ну вдруг на BC++ 3.1 это пишется), то да. std::list чем не устраивает?
Об удалении объектов CSprite надо заботиться отдельно. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
| Dray |
|
|||
![]() Материалист ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 7.10.2003 Где: г. Всеволожск Репутация: 2 Всего: 6 |
buf потом можно удалить(delete RemoveAndAdd(...)). Я правильно понял? Это сообщение отредактировал(а) Dray - 7.4.2005, 21:13 |
|||
|
||||
| Lekseich |
|
|||
|
Unregistered |
Последний вариант подходит, но у меня основная проблема - что первый параметр должен определяться автоматически (в зависимости от номера удаляемой цепочки). Как это реализовать?
|
|||
|
||||
| Dray |
|
||||||
![]() Материалист ![]() ![]() Профиль Группа: Участник Сообщений: 652 Регистрация: 7.10.2003 Где: г. Всеволожск Репутация: 2 Всего: 6 |
Что-то я не понимаю, что новый список не должен передаваться в пвраметре? Какие вообще параметры должны быть в этой функции?
Можно. Если написать перед классом Node такую штучку:
|
||||||
|
|||||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |