|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.11.2011, 11:42 | #1 |
Пользователь
Регистрация: 19.04.2010
Сообщений: 62
|
Реализация класса множество через двусвязный список.
дали задание реализовать класс множество через двусвязный список.
Сам класс список мне реализовать вроде удалось, но стоит загвоздка в том, как реализовать некоторые функции для множества: пересечение множеств (*), объединение множеств(+), и разность множеств (-), поиск заданного элемента, удаление и добавление его. для пересечение множеств (*), объединение множеств(+), и разность множеств (-) думаю стоит переопределять операции *, + и - соответственно. пересечение: в новое множество идут только общие элементы двух мн-в. объединение: в новое мн-во идут все элементы, причем они не должны повторяться. разность: в новое мн-во идут элементы, которые есть в первом, но нет во втором. вот что у меня пока реализовано. //Set_list.h Код:
Код:
<--<--<--Нажми на весы слева <---<---<---
|
04.11.2011, 12:22 | #2 |
Пользователь
Регистрация: 19.04.2010
Сообщений: 62
|
забыл добавить, элементами множества являются целые числа
<--<--<--Нажми на весы слева <---<---<---
|
04.11.2011, 13:12 | #3 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Объединение и пересечение, в случае операторов, лучше задавать как | и &. Тем более что операция произведения множеств тоже существует.
Во-первых, я бы менял интерфейс. У множества идеологически нет "начала" или "конца", а есть операция "добавить элемент в множество" (традиционно возвращающая признак того, был ли там уже такой элемент), аналогичная операции "убрать элемент". Кроме того, совершенно непонятны причины запрета на копирование-присваивание. Как именно Вы представляете запись пересечения? Я - Set_list c = a&b; Если сделать так, появляется возможность хранить элементы в списке упорядоченным образом (вообще, как мы что храним внутри класса - дело нас, как разработчиков класса; до тех пор, пока мы выдерживаем заявленный интерфейс, окружающим о подробностях знать необязательно). Пересечение: Код:
Остальные две операции делаются практически идентично, только заносится в "ответ" элементы будут в другие моменты. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
реализация стека через односвязный список | snusnu | Общие вопросы C/C++ | 7 | 06.04.2014 23:59 |
Множество через двусвязный список. | Fantom.as | Помощь студентам | 0 | 02.11.2011 20:38 |
Двусвязный список в виде класса. delphi | Rei-li | Помощь студентам | 5 | 21.09.2011 02:51 |
Двусвязный список | narcot | Visual C++ | 13 | 28.05.2011 21:12 |
Шаблон класса "Двусвязный список | DIMON007 | Помощь студентам | 0 | 17.05.2010 17:35 |