![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
KerK |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите разобраться с задачей, хотя бы алгоритм...
Реализовать в виде класса на языке С++ абстрактный тип данных множество с операциями добавления элемента, удаления, проверки наличия и т.д. Для хранения элементов множества использовать хеш-таблицу, элементами множества являются строки ограниченной длины. |
![]() ![]() |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Что именно тебе не понятно? Алгоритм выполения операций "добавления элемента, удаления, проверки наличия и т.д"?
|
KerK |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что именно тебе не понятно? Алгоритм выполения операций "добавления элемента, удаления, проверки наличия и т.д"? можно сказать... да, желательно код, хотя бы для добавления элемента... можно сказать... да, желательно код, хотя бы для добавления элемента... еще интересует хеш-таблица и элементы множества - строки ограниченной длины.... Это задание выполняется с использованием указателей? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата еще интересует хеш-таблица Поиск по форуму: "коллиз*" выдаст тебе 3 темы. В одной из них присутствуют ссылки на реализацию Hash-Table с динамическим и с линейным разрешением коллизий (реализация, правда, Паскалевская, но для "разбора полетов" как раз пойдет ![]() |
Michael_Rybak |
![]()
Сообщение
#5
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
И интересно, STL юзать можно?
![]() |
Алена |
![]()
Сообщение
#6
|
Гость ![]() |
Вот набросок без использования STL:
#include <string.h> Здесь элементы theSet хранятся в виде односвязного списка, просто замени List на HashTable (ссылку тебе дали выше, реализация - за тобой...), и все... Можно класс theSet сделать шаблонным, кстати, чтоб можно было работать и со строками, и с числами, и вообще со всем, с чем хочется... Опять же, можно разнести эту программу по разным файлам, я привела "все в одном" только для облегчения тестирования... |
KerK |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Алена спасибо за код...
Я вот тут нашел такую ссылочку http://akoub.narod.ru/practprog/dict/hashtable.htm Это похоже на то что мне надо? И возник вопрос: ht.create(5); ht.add(new(PString, create('Ivanov')), new(PString, create('student'))); ht.add(new(PString, create('Petrov')), new(PString, create('student'))); ht.add(new(PString, create('Sidorov')), new(PString, create('student'))); ht.add(new(PString, create('Sokolova')), new(PString, create('student'))); или из кода Алены theSet my_set; my_set += "first"; my_set += "second"; my_set += "third"; my_set += "fourth"; Это я так понимаю, создаются элементы множества? ...элементами множества являются строки ограниченной длины. - под строками я понимаю какой-то текст, это правильно или нет? Объясните пожалуйста... Что подразмевается под элементами множества...? |
Алена |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата Это я так понимаю, создаются элементы множества? Это в множества добавляются элементы... Мне почему-то казалось, что перегрузка operator += совершенно прозрачна: есть множество, и если к нему что-то прибавляется, значит, элемент добавляется в множество...Цитата под строками я понимаю какой-то текст, это правильно или нет? Судя по заданию, да... Что, собственно, в моем коде и делается: добавляется текстовая строка... Насчет ограничения длины - в конструкторе theString можешь наложить ограничение на длину строки, и, скажем, обрезать ее до определенной длины, и в множество будет записываться уже укороченная строка, если длина исходной превышает некоторый предел... |
KerK |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
Алена твой исходник не компилируется, выдает ошибку (183,64): 'theSet::List' is not accessible
В чем может быть причина? |
Алена |
![]()
Сообщение
#10
|
Гость ![]() |
Не знаю, у меня прекрасно работает... Ты что же думаешь, я бы выложила, если бы это не компилировалось? А вот тебе было бы неплохо перечитать правила:
Цитата 2. Точно указывайте язык, название и версию компилятора (интерпретатора). Извини, я нигде не увидела версии твоего компилятора, поэтому программа отработана на Turbo C++... |
Гость |
![]()
Сообщение
#11
|
Гость ![]() |
Не знаю, у меня прекрасно работает... Ты что же думаешь, я бы выложила, если бы это не компилировалось? А вот тебе было бы неплохо перечитать правила: Извини, я нигде не увидела версии твоего компилятора, поэтому программа отработана на Turbo C++... Я не думаю, что ты бы выложила нерабочий код... Я просто спросил, в чем может быть проблема... проблема оказалась в компиляторах... |
KerK |
![]()
Сообщение
#12
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Репутация: ![]() ![]() ![]() |
А турбо с++ сильно отличается от обычного борландского с++ v.5.02?
Нашел реализацию хэш таблицы на с++... Hashset.h
Hashset.cpp
И я так понимаю, это тоже на турбо с++? |
Алена |
![]()
Сообщение
#13
|
Гость ![]() |
Цитата я так понимаю, это тоже на турбо с++? Почему же? ЭТО компилируется и на GCC, например... Я не думаю, что будут проблемы с Билдером (только вот в чем проблема, я Билдер не держу, также, как и MSVC, соответственно, проверить не могу... Компилируй, исправляй, если что не работает - к автору...)Кстати, я подправила чуть-чуть свою первоначальную программу, теперь она должна компилироваться без проблем: Сообщение отредактировано: Алена - 13.11.2006 11:30 Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 3:31 |