Форум программистов, компьютерный форум CyberForum.ru

АВЛ дерево и коллизия хэша - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ исключить все символы между круглыми скобками, включая сами скобки http://www.cyberforum.ru/cpp-beginners/thread1024889.html
исключить все символы между круглыми скобками, включая сами скобки. Рассмотреть случай вложенных скобок.
C++ Удалить из каждой группы идущих подряд цифр нули удалить из каждой группы идущих подряд цифр нули http://www.cyberforum.ru/cpp-beginners/thread1024887.html
C++ Заменить все русские буквы строке их порядковыми номерами в русском алфавите
заменить все русские буквы строке их порядковыми номерами в русском алфавите.
Выбрать из строки все буквы и отсортировать их в алфавитном порядке C++
выбрать из строки все буквы и отсортировать их в алфавитном порядке.
C++ Ошибка в программе(функции) http://www.cyberforum.ru/cpp-beginners/thread1024884.html
#include "stdafx.h" #include <iostream> #include <iomanip> #include <math.h> #include <conio.h> using namespace std; float b(float &); float a(float); float c(float *);
C++ Матрица, подсчитать количество частей с нулями Дана матрица, состоящая из нулей и единиц. Нужно посчитать количество частей с нулями. Пример. Дана матрица 5x5: 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 В ней две части с нулями. Второй пример. подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
02.12.2013, 09:38  [ТС]     АВЛ дерево и коллизия хэша
gray_fox, кажись, наконец-то, дошло. Сначала ищем по хешу, затем попадаем на нужную ячейку и там лежит не просто связный список, как обсуждалось ранее, а сбалансированное двоичное дерево?

И, если это так, то остался последний вопрос, который меня мучает в любых хеш-таблицах.. Чтобы адресация была за О(1), нужен обычный массив и индекс. Индексом может служить хэш. Однако, хэш, обычно, принимает довоьно широкие пределы, допустим, 8 знаков (да и частенько он выражается не только в числовой форме 10ой записи, а в 16ой), тогда как же выделять массив для этих нужд? Пример:
C++
1
2
3
4
HTable ht; //допустим, изначальный размер 0
string s = "str1"; //допустим, hash(s) == 21389142
ht.insert("str1"); //размер ht-массива стал 21389142 ? О_о
string foundedString = ht.find("str1"); //иначе мы не можем за О(1) обратится, ведь ищем именно по индексу 21389142
Или что я опять не понимаю?
(А ну и что делают с хэшами 0x? Или их не применяют для такого, только 10ые?)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru