chash.h

来自「常用算法与数据结构原代码」· C头文件 代码 · 共 54 行

H
54
字号
// file Chash.h
#ifndef ChainedHashTable_
#define ChainedHashTable_

#include <iostream.h>
#include <stdlib.h>
#include "sochain.h" // sorted chain

template<class E, class K>
class ChainHashTable {
public:
	ChainHashTable(int divisor = 11)
	{
		D = divisor;
		ht = new SortedChain<E,K> [D];
	}
	~ChainHashTable() 
	{
		delete [] ht;
	}
	bool Search(const K& k, E& e) const
	{
		return ht[k % D].Search(k, e);
	}
	ChainHashTable<E,K>& Insert(const E& e)
	{
		ht[e % D].DistinctInsert(e);
		return *this;
	}
	ChainHashTable<E,K>& Delete(const K& k, E& e)
	{
		ht[k % D].Delete(k, e);
		return *this;
	}
	void Output() const;   // output the table
private:
	int D;                 // divisor
	SortedChain<E,K> *ht;  // array of chains
};

template<class E, class K>
void ChainHashTable<E,K>::Output() const
{
	SortedChain<E,K> c;
	for (int i = 0; i < D; i++) 
	{
		cout << "Chain " << i << ' ';
		ht[i].Output(cout);
		cout << endl;
	}
}

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?