Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > помогите написать прогу hash-таблица |
Автор: Алёнка 22.2.2005, 17:35 |
Народ!Может кто-нибудь сможет мне помочь. Мне нужно написать прогу hash-таблица. Т.е. все операции с хэш-таблицей: поиск, добавить, найти, минимум. |
Автор: sergejzr 22.2.2005, 17:36 |
Начинай, мы поможем, если будут вопросы ![]() |
Автор: chaos 22.2.2005, 17:39 |
на сколько я понимаю хаш таблица это в стл map и multimap советую заглянуть в реализацию по этим классам, станет легче ) Ну а что не ясно обращайся, "поможем", как сказал sergej.z |
Автор: pablo 22.2.2005, 18:28 | ||
Нет. Таблица хаш это не map, multimap, т.к они реализованы ввиде сбалансированного бинарного дерева. Это чуток из другой оперы. ![]() |
Автор: chaos 22.2.2005, 18:48 | ||||
хорошо!!! Объясни тогда что это такое, что бы знать на будущее ![]() |
Автор: sergejzr 22.2.2005, 19:03 |
Вот, глянь.. http://forum.vingrad.ru/index.php?showtopic=42834&hl=hash# |
Автор: Алёнка 22.2.2005, 23:06 |
все внимательно прочитала. даже фигню какую то по аглицки. тока мало что поняла. про хэш таблицу нам на лекциях впаривали. я экзамен сдавала. что это такое я знаю. сама могу кому угодно объяснить. у меня проблема именно с программой. |
Автор: sergejzr 22.2.2005, 23:10 |
Алёнка, а ссылку chaos попросил. ![]() В чём проблема с программой? Не знаешь как начать? Как закончить? Уже есть наброски? Выкладывай что есть. (фигню по англицки не надо ![]() |
Автор: bel_nikita 22.2.2005, 23:51 | ||||||
Вот, примерчик ХЭШ ![]()
Типа использование. Думаю понятно, особо объяснять не нужно
|
Автор: mr.DUDA 23.2.2005, 08:14 |
bel_nikita, а теперь без ассемблера и не только для стрингов, плиз ![]() |
Автор: pablo 23.2.2005, 14:55 | ||
Извините за дизинформацию. Map прекрасно подходит для этих целей, но надо прeдусмотреть выявление коллизий. Согласно дяде Бъерну Страуструпу, для организации хеш таблиц в стандартной библиотеке предусмотрены два контейнера. map<string, int> m1; //сравнение строк при помоши оператора < map<string, int, Nocase> // сравнение строк при помощи оператора Nocase hash_map<string, int, hfct> //хеширование при помощи hfct, бес этой функции хеширование будет при помощи Hash<string> и сравнение при помощи оператора == hash_map<string, int, hfct, eql> //хеширование при помощи hfct, сравнение при помощи eql |
Автор: Алёнка 24.2.2005, 15:23 |
само задание звучит так: хэш таблица + минимум. для реализации минимума испльзовать кучу. куча это такая штука, когда сыновья меньше чем отец. т.е. самый главный папаша самый большой. его сыновья меньше. сыновья сыновей еще меньше и т.д.по крайней мере препод так объяснял. пусть у нас будет 10 ячеек в хэш таблице. в хэш таблицу приходит данное с некоторым ключом например 13. оно помещается в ячейку 3. если придет данное с ключом 23. то оно поместится в ячейку 4 т.к. ячейка 3 уже занята. либо можно на каждой ячейке использовать указатель на ключ. вот такие дела. ![]() если честно проблема с самим заданием. ни начать ни закончить не могу. еще более или менее могу с вычматом разобратся, но указатели это не моё. а препод уже пообещал троих отчислить из-за того что группа большая ![]() а этот код который мне написал bel nikita он на ассемблере написан? я уже сотню раз такое встречала но нас такому не учили. он чем то на C++ похож. а насколько они похожи мне кто нибудь сказать может? |
Автор: En_t_end 24.2.2005, 16:31 |
Алёнка У асм'а с С++ ничего общего нет. Просто большинство компиляторов для( + если я не ошибаюсь, в си вообще стандартом предусмотрены вставки из асм'а) си поддерживает вставки из асм'а + дебугер разбирает код переведенный на асм. |
Автор: Алёнка 24.2.2005, 16:55 |
хорошо. а как ту штуку с ассемблера на с++ перевести. мне этот язык абсолютно незнаком. я пару раз видела какие то программы которые переводят с одного языка на другой, но это было давно. где их можно найти? |
Автор: En_t_end 24.2.2005, 17:14 |
Не знаю, я только встречал дизассемблеры - программы дизассемблирующие машинный код. Одним я как раз активно пользуюсь. ![]() Логически возможен перевод с одного языка на другой, но я о таком не слышал, набери в гугле запрос. ![]() |
Автор: Алёнка 25.2.2005, 00:04 |
наверно такую штуку я и видела. а что такое гугл? |
Автор: sergejzr 25.2.2005, 00:06 |
Гугл это Google. Только он не поможет. С ассемблера на Си перевести нельзя. И нет таких тулов. |
Автор: En_t_end 25.2.2005, 11:10 | ||
Вот и авторитетный товарисч подтвердил ![]() |
Автор: Guest 26.2.2005, 20:53 |
а че тогда с той прогой можно сделать. кто-нить может помочь перевести? |