Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.08.2013, 17:45   #1
R0807D06
Новичок
Джуниор
 
Регистрация: 08.08.2013
Сообщений: 1
По умолчанию хэш таблица

не работает, где ошибка?
Код:
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <string>

struct HashTableNode 
{
	std::string data;
	HashTableNode *next;
};

template<class T> class HashTable
{
	int key;
	HashTableNode **Collumn;
public:
	HashTable(int k);
	HashTable(const HashTable &ob);
	HashTable& operator=(const HashTable &ob)
	{
	if(this != &ob)
	{
		Collumn = new HashTableNode *[ob.key];
	    key = ob.key;
		for(int i = 0; i < key; i++)
		    Collumn[i] == NULL;
	}
	return *this;
    }
	void AddToTable(T name, int k);
	void CreateCell(HashTableNode *col, T name);
	void Show(int k);
};
template<class T>HashTable<T>::HashTable(int k)
{
	Collumn = new HashTableNode *[k];
	key = k;
	for(int i = 0; i < key; i++)
		Collumn[i] == NULL;
}
template<class T>HashTable<T>::HashTable(const HashTable &ob)
{
	Collumn = new HashTableNode *[ob.key];
	key = ob.key;
	for(int i = 0; i < key; i++)
		Collumn[i] == NULL;
}


template<class T>void HashTable<T>::AddToTable(T name, int k)
{
	if(Collumn[k] == NULL)
	{
		Collumn[k] = new HashTableNode;
		Collumn[k]->data = name;
		Collumn[k]->next = NULL;
	}else
		CreateCell(Collumn[k], name);
}
template<class T>void HashTable<T>::CreateCell(HashTableNode *cell, T name)
{
	if(cell->next == NULL)
	{
		cell->next = new HashTableNode;
		cell->next->data = name;
		cell->next->next = NULL;
	}else
		CreateCell(cell->next, name);
}
template<class T>void HashTable<T>::Show(int k)
{
	std::cout << Collumn[k]->data;
}
int main()
{
	HashTable<std::string> Table(20);
	Table.AddToTable("retert", 0);
	Table.Show(0);
	system("pause");
	return 0;
}



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 13.08.2013 в 19:53.
R0807D06 вне форума Ответить с цитированием
Старый 13.08.2013, 15:51   #2
Shad0wF1rst
Форумчанин
 
Регистрация: 11.01.2013
Сообщений: 149
По умолчанию

Протестируйте пожалуйста сами после какой строчки в main программа перестает работать, что бы было понятно в какой функции искать.
Может это и чушь, но это моя чушь и я ее никому не отдам.
Shad0wF1rst вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хэш - функция СветОК Общие вопросы C/C++ 1 27.05.2012 16:53
Хэш-таблица. Метод цепочек. C++ Playa-RC Помощь студентам 0 10.03.2012 15:07
хэш-таблица с открытой адресацией Olya13254 Помощь студентам 0 04.01.2011 17:27
хэш-функция N-хэш Temka Общие вопросы Delphi 1 29.11.2010 21:11
хэш-функции willhunting Фриланс 7 14.05.2010 12:47