假设我们要设计一个HashMap而不使用任何内置的哈希表库。将有以下不同的功能-put(key,value)-这会将与key关联的值插入到HashMap中。如果HashMap中已经存在该值,请更新该值。
get(key)-这将返回指定键所映射到的值,如果此映射不包含该键的映射,则返回-1。
remove(key)-如果此映射包含键的映射,则它将删除值键的映射。
因此,如果输入类似于初始化后,请按如下所示调用put和get方法-put(1,1);
put(2,2);
get(1);
get(3);
put(2,1);
get(2);
remove(2);
get(2);
那么输出将分别为1,-1(不存在),1 -1(不存在)。
为了解决这个问题,我们将遵循以下步骤-创建一个称为node的新数据结构,并将其初始化,将有一些字段,如(key,val,next),next最初为null
定义一个链表,方法如下:
定义一个初始化程序,它将如下工作:prehead:=一个新节点,节点为key = null,val = null
定义一个功能search()。这将需要关键
p:= prehead.next
当p不为null时,执行返回p
如果p.key与key相同,则
p:= p.next
不返回
定义一个功能add()。这将需要键,val