#4648. 哈希表的基本操作

哈希表的基本操作

题目描述

给定一个哈希表,采用链地址法解决冲突,哈希函数为 H(x)=x%11H(x) = x \% 11。请实现以下功能:

  1. 向哈希表中插入若干整数;
  2. 查询若干整数是否存在于哈希表中;
  3. 按哈希表的桶顺序,输出每个桶中的所有元素(空桶输出 NULL)。

输入格式

  • 第一行:一个整数 nn,表示插入操作的次数;
  • 第二行:nn 个整数,表示要插入哈希表的元素;
  • 第三行:一个整数 mm,表示查询操作的次数;
  • 第四行:mm 个整数,表示要查询的元素。

输出格式

  • 第一部分:mm 行,每行输出查询结果(存在输出 YES,不存在输出 NO);
  • 第二部分:11 行,按桶编号 0100 \sim 10 输出每个桶的元素,元素间用空格分隔,空桶输出 NULL

样例输入

5
1 12 23 34 5
3
12 6 5

样例输出

YES
NO
YES
NULL
1 12 23 34
NULL
NULL
NULL
5
NULL
NULL
NULL
NULL
NULL

样例解释

  1. 插入元素的哈希值计算:
    • 1%11=11 \% 11 = 112%11=112 \% 11 = 123%11=123 \% 11 = 134%11=134 \% 11 = 15%11=55 \% 11 = 5
    • 桶 1 存储:1 12 23 34,桶 5 存储:5,其余桶为空。
  2. 查询结果:
    • 12 存在 → YES,6 不存在 → NO,5 存在 → YES