Kotlin手动实现一个最简单的哈希表

参考的是《数据结构(C语言版)》上256页左右的哈希表的介绍,用了最简单的直接寻址法 + 链地址法。 用的是Kotlin。 package main.kotlin /** * 手动实现简单的hash表 * 简单的数组 +链表 (无红黑树) * 要求哈希函数可配置(被自我否决,太复杂了啦),这次就先做比较简单的 直接定址法 + 链地址法 * * @Date 2021-10-16. * @author Johnathan Lin */ data class Node( val key: Int, //key var value: Int, //value var next: Node? //如果hash值重复了,则用头插法放进去 ) fun main() { // hash表,这次可为空 val size = 100 val hashArr: Array<Node?> = Array(size) { null } //插入 假设插入key 8 value 24 println("插入key 8 value 24") set(hashArr, size, 8, 24) { k, s -> k % s } println("插入key 108 value 32") set(hashArr, size, 108, 32) { k, s -> k % s } var v = get(hashArr, size, 108) { k, s -> k % s } println("读取key为108: $v") println("删除key 108") remove(hashArr, size, 108) { k, s -> k % s } v = get(hashArr, size, 108) { k, s -> k % s } println("读取key为108: $v") v = get(hashArr, size, 8) { k, s -> k % s } println("读取key为8: $v") } /** * @param hashFunc 哈希函数 param1:key param2:size */ fun get(hashArr: Array<Node?...

October 16, 2021 · 3 min · JohnathanLin