子域树的实现

时间:2018-07-09 06:10:39

标签: c++ c go search tree

我正在研究子域标签存储(看起来像多图)的golang实现。对我来说还不太清楚,我应该使用哪种树来实现以下逻辑:

    tree := NewTree()
    tree.AddTag("com", 1)
    tree.AddTag("google.com", 2)
    tree.AddTag("google.com", 3)
    tree.AddTag("www.google.com", 4)

    var ret []int
    ret = tree.GetTags("msn.com") // ret = [1]
    ret = tree.GetTags("www.msn.com") // ret = [1]
    ret = tree.GetTags("google.com") // ret = [1,2,3]
    ret = tree.GetTags("www.google.com") // ret = [1,2,3,4]
    ret = tree.GetTags("mail.google.com") // ret = [1,2,3]
    ret = tree.GetTags("debug.www.google.com") // ret = [1,2,3,4]

此任务与后缀搜索不同,例如,“ msn.com”属于“ com”,“ www.google.com”属于“ google.com”和“ www.google.com”。

如果有人可以将我指向c / c ++ / golang源,我也将不胜感激。

0 个答案:

没有答案