散列-class namehash
是散列表-hash的后续,把c语言风格的代码用class封装在namehash类中
保留测试部分的输出接口,利于理解代码
/*
author:hhy
time:2019/12/14
func:一级散列
建立姓名散列表
存储姓名 以字典的形式散列到对应目录下
检索姓名 以查字典的形式查找- 返回查找次数和位置
散列函数 姓名字符int化 取余散列到字典各目录下
*/
#ifndef NAMEHASH_H
#define NAMEHASH_H
#include <string>
#include<iostream>
using std::string;using std::cout;using std::endl;
class namehash
{
public:
namehash();
virtual ~namehash();
//get hash number
int hashFunc(string& name){return ((int)name[0])%26;};
void addName(string& name);//add name to the namehash table
int* findName(string& name);//return an int[2] :loc info of name
protected:
private:
typedef struct hashNode{
string _name;
hashNode* _behind = nullptr;
}*hashTable;
//for 26 types alpha <the first>
hashNode baseTable[26];
};
#endif // NAMEHASH_H