Language agnostic 图形-查找公共数据

Language agnostic 图形-查找公共数据,language-agnostic,data-structures,graph-theory,Language Agnostic,Data Structures,Graph Theory,我刚刚开始阅读图表理论和数据结构 我正在构建一个示例应用程序,它应该能够找到最常见链接的xpath。假设有一个GoogleSERP,我的应用程序应该能够找到指向结果的所有链接的xpath 想象一下这些XPath被发现: /html/body/h2/a /html/body/p/a /html/body/p/strong/a /html/body/p/strong/a /html/body/p/strong/a /html/body/div[@class=footer]/span[@id=copy

我刚刚开始阅读图表理论和数据结构

我正在构建一个示例应用程序,它应该能够找到最常见链接的xpath。假设有一个GoogleSERP,我的应用程序应该能够找到指向结果的所有链接的xpath

想象一下这些XPath被发现:

/html/body/h2/a
/html/body/p/a
/html/body/p/strong/a
/html/body/p/strong/a
/html/body/p/strong/a
/html/body/div[@class=footer]/span[@id=copyright]/a
从这些XPAT中,我想到了这样一个图(我可能完全迷路了):

这是解决这个问题的最好办法吗

将其存储在内存中的最佳方式(数据结构)是什么?语言不通。我们可以看到,我们有3个链接匹配路径html->body->p->strong->a

正如我所说,我对这个完全陌生,所以请原谅我,如果我认为这是完全错误的


编辑:我可能正在寻找trie数据结构?

还不用担心尝试。只需使用标准图形表示法(node={value,count,parent})构建一棵树,同时立即折叠相同的分支并增加计数器。然后,按计数降序排列所有叶子,并从每个叶子向上遍历以获得路径

                            html
                             |
                            body
                        h2 -     p           - div[@class=footer]
                        |        |                     |
                        a (1)  a - strong      span[@id=copyright]
                                      |                |
                                      a (3)            a (1)