键值对与键=值

来源:互联网 发布:如何开展网络推广 编辑:程序博客网 时间:2024/05/16 06:35

1.符号表(ST)

就是存放键值对的数据结构。

可以采用平行数组来实现,Key [] keys; Value[] vals;

2.直觉上的违反

最开始处理的情况是没有键-值的情况,所有的处理情况就是处理的值。

比如在一个有序的数组中,使用二分查找找到某一个数的下标。

我们直接通过值来搜索,而这个值就是元素的标识。


现在我们来做一个区分,使用key专门来区分不同的对象,而value才是不同的对象的实际内容(我们所实际关心的内容)。

因为key是作为对象的区分,所以我们在查找某个元素的时候当然是用key来查找。


我们作一个约定,key与其对应的value都共享一个下标。

而这个下标确实由key决定的,通过key可以找到其下标,这样就能通过下标在vals中找到value了。

而为了更方便地找到key的下标,就可以将key进行排序,以其顺序作为其下标。


(1)之前的习惯,我们通过值直接查找在不在一个数组中。

(2)现在是通过key查找在不在数组中,如果在还要访问那个value。

其实这两种是统一的。

只要将(1)中的数据看做key = value的数据就行了。这样因为key下标=value下标,并且key = value

所以用一个数组就能表达了。

而我们的操作也只需要判断某一个value在不在某个集合里面了,而这个key的内容就是key本身,所以也就不需要额外的操作了。

0 0
原创粉丝点击