我刚刚开始阅读图形和数据结构。
我正在构建一个示例应用程序,它应该能够找到最常见链接的xpath。想象一下Google serp,我的应用程序应该能够找到指向结果的所有链接的xpath。
想象一下,找到了theese 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
从这些xpats中,我想到了一个这样的图形(我可能完全迷失在这里):
html
|
body
h2 - p - div[@class=footer]
| | |
a (1) a - strong span[@id=copyright]
| |
a (3) a (1)
这是解决这个问题的最佳方法吗?
将这个存储在内存中的最佳方式(数据结构)是什么?这种语言并不合适。我们可以看到我们有3个链接匹配路径html - >身体 - > p - >强 - >一个。
正如我所说,我对此完全陌生,如果我认为这完全错了,请原谅我。
编辑:我可能正在寻找特里数据结构?
答案 0 :(得分:1)
不要担心尝试。只需使用标准图形表示(node = {value,count,parent})构建一个树,同时立即折叠相同的分支并递增计数器。然后,按降序对所有叶子进行排序,并从每个叶子向上遍历以获得路径。