【发布时间】:2012-09-24 10:58:57
【问题描述】:
我正在用 C++ 编写一个程序,该程序需要快速查找和存储 IP 地址(所有 IPv4)。每个 IP 地址都有一个与之关联的数据。如果它已经存在于 trie 中,我打算将 trie 中的 IP 地址数据与新地址数据合并。如果它不存在,我打算将它作为新条目添加到 trie 中。不需要删除 IP 地址。
为了实现这一点,我需要设计一个 Patricia Trie。但是,我无法想象除此之外的设计。我似乎很天真,但我想到的唯一想法是将 IP 地址更改为二进制形式,然后使用 trie。然而,我对 HOW 究竟如何实现这一点一无所知。
如果您能帮我解决这个问题,我将非常感谢您。 请注意,我确实找到了类似的问题 here 。这个问题或更具体的答案超出了我的理解,因为 CPAN 网站中的代码对我来说不够清楚。
另外注意,我的数据是以下格式
10.10.100.1:“汤姆”、“杰克”、“史密斯”
192.168.12.12:“琼斯”,“莉兹”
12.124.2.1:“吉米”,“乔治”
10.10.100.1:“迈克”、“哈利”、“詹妮弗”
【问题讨论】:
-
多少? (如果几百万:使用哈希表)
-
我添加了一个示例,如果有帮助的话。
标签: data-structures ip-address trie patricia-trie radix-tree