Mr_BigG 2020-11-03 16:26 采纳率: 0%
浏览 30

C++散列查找实验(开散列)怎么做?

请设计一个整型开散列表,散列函数为除留余数法,其中散列表的长度、除留余数法的模和关键码的个数由键盘输入,再根据输入由键盘输入所有的关键码。分别对三个待查值在散列表中进行查找,输出查找结果采用头插法。

输入描述
各个命令以及相关数据的输入格式如下:
第一行输入闭散列表的长度n
第二行输入除留余数法的模m
第三行输入关键码的个数num
第四行输入num个整型关键码
第五行输入三个待查整型值
输出描述
输出三行,每行格式为:
如果找到待查值,输出找到待查值的位置,先输出待查值在散列表指针数组中的下标,
再输出待查值在关键码链表中的位置,从1开始,如果没找到,输出“none”,并把待查值
插入到开散列表中
输入样例
11 11 9
2 6 8 9 13 17 10 12 20
11 13 9
输出样例
none
2 1
9 2

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-24 22:15
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    ```python

    定义链表节点

    class Node: def init(self, val): self.val = val self.next = None

    定义哈希表类

    class HashTable: def init(self, size, mode, num, keys): self.size = size self.mode = mode self.num = num self.table = [None] * size

        for key in keys:
            self.insert(key)
    
    # 插入关键码
    def insert(self, key):
        pos = key % self.mode
        if self.table[pos] is None:
            self.table[pos] = Node(key)
        else:
            new_node = Node(key)
            new_node.next = self.table[pos]
            self.table[pos] = new_node
    
    # 查找关键码
    def search(self, key):
        pos = key % self.mode
        if self.table[pos] is None:
            return "none"
        else:
            cur = self.table[pos]
            index = 1
            while cur:
                if cur.val == key:
                    return (pos, index)
                cur = cur.next
                index += 1
            return "none"
    

    输入闭散列表的长度n、除留余数法的模m、关键码的个数num

    n, m, num = map(int, input().split())

    输入关键码列表

    keys = list(map(int, input().split()))

    创建哈希表

    hash_table = HashTable(n, m, num, keys)

    输入三个待查整型值

    values = list(map(int, input().split()))

    查找并输出结果

    for value in values: result = hash_table.search(value) if result == "none": hash_table.insert(value) print("none") else: print(result[0], result[1])

    输入样例
    

    11 11 9 2 6 8 9 13 17 10 12 20 11 13 9

    输出样例
    

    none 2 1 9 2

    评论

报告相同问题?

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表