![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
Здарвствуйте, помогите пожалуйста, дано вот такое задание:
Средствами языка С++ создать шаблонный класс узлов для двусвязных списков DNode<T>. Реализовать односвязный список в виде шаблонного класса DoubleList<T>, используя средства языка С++, на базе объектов шаблонного класса DNode<T>. Разработать main - программу для тестирования всех открытых функций-членов созданного класса и созданной процедуры. Шаблонные классы я знаю как делать, но вот со списком используя классы (причем вроде бы преподаватель сказал, что в закррытой области должны храниться указатель на предыдущий и следующий элемент списка, а в открытой ключ (данные)). |
|||
|
||||
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
Можете сказать, хоть, что это значит "шаблонный класс узлов для двусвязных списков "???
|
|||
|
||||
creatorcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
||||
|
||||
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
АГА спасибо большое, мне это и надо было в принципе узнать!!
|
|||
|
||||
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
а вот подскажите пожалуйста как еще можно создавать новый элемент используя всего три поля без идентификатора, который бы обобщал эти поля. Как допустим переменная типа структура.
заранее спасибо! |
|||
|
||||
creatorcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
Попробуй так:
|
|||
|
||||
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
Ага спасибо, но похоже здесь без дополнительной переменной все равно не обойтись потому что дальше если создавать новые элементы, то this не присвоить next
|
|||
|
||||
creatorcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
Если я правильно понял Вы хотите вставить элемент в конец списка?
Вообще-то я бы несколько иначе все это спроектировал.
|
|||
|
||||
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
А можно организовать процедуру для вставки элементов в классе DNode, а не DList, или этого никак нельзя сделать используя те данные описанные выше???
|
|||
|
||||
creatorcode |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
Просто это лишено смысла. ![]() К тому же Вы сами писали:
DNode служит лишь для хранения данных об узле и манипулировании одним узлом. Для операций со списком следует использовать DList. Это сообщение отредактировал(а) creatorcode - 2.5.2008, 00:15 |
||||
|
|||||
PRF |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 13.10.2007 Репутация: нет Всего: нет |
Спасибо большое!!! Тогда сделаем!!
А вот еще вопрос, если мы поместили указатели в next и prev в private, то им же нельзя ничего присваивать из DList!!! Как это можно обойти, в public записывать нельзя, и если не использовать ключевое слово friend??? Это сообщение отредактировал(а) PRF - 2.5.2008, 15:20 |
|||
|
||||
creatorcode |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 12.6.2006 Где: Ленинград Репутация: 3 Всего: 4 |
А чем Вас не устраивает friend? В принципе можно написать в классе DNode методы SetData\GetData, SetNext\GetNext,SetPrev\GetPrev для записи и чтения скрытых полей класса. (или как вариант методы, возвращающие ссылку на поле). Это сообщение отредактировал(а) creatorcode - 2.5.2008, 16:28 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |