编程日志5.15

哈希表的基础算法

#include<iostream>
using namespace    std;

//哈希表结点类定义
//这段代码定义了一个名为HashNode的模板类,用于哈希表中的结点,其中每个结点存储一个键值对。
//哈希表结点类
template<typename KeyType,typename ValueType>//模板声明,用于定义一个通用的类模板,可以用于处理不同类型的键KeyType和值ValueType
class HashNode {
public:
    KeyType key;//存储结点的键
    ValueType value;//存储结点的值
    HashNode* next;//指向哈希表中下一个结点的指针
    //构造函数用于创造一个新的HashNode对象,并初始化其成员变量。
    //它接受两个参数:键和值,并将它们分别赋值给key和value成员变量,next成员变量初始化为NULL
    HashNode(const KeyType& key, const ValueType& value) {
        this->key = key;
        this->value = value;
        this->next = NULL;
    }
};

//哈希表类的声明
//这段代码定义了一个名为HashTable的模板类,用于实现哈希表
//哈希表类
template<typename KeyType,typename ValueType>
class HashTable {
private:
    int size;//表示哈希表的大小,即哈希表中可以存储的结点数量
    HashNode<KeyType, ValueType>** table;//是一个指向HashNode<KeyType, ValueType>类型的指针数组,用于存储哈希表中的结点

    //哈希函数
    int hash(const KeyType& key) const {
        int hashkey = key % size;
        if (hashkey < 0)hashkey += size;
        return hashkey;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值