我們有一些輸入鏈接:
「http://test.com」此鏈接有鏈接:
「http://test.com」,「http://test.com/some 」, 「http://google.com」
和 「http://test.com/some」 有聯繫: 「http://facebook.com」, 「some.com」
遞歸計數深度
所需結果:
步驟主要:0鏈接: 「http://test.com」 ExtLinksCount:1個
步驟主要:1條鏈路: 「http://test.com/some」 ExtLinksCount:2
我算的extlinks,但我不知道怎麼算的遞歸
public void info(String url) throws IOException {
if (!parsedLinks.contains(url)) {
parsedLinks.add(url);
String[] links = hp.getLinks(url);
System.out.println("Link : " + url + "\n"
+"ExtLinksCount : " + externalLinksCount(links) + "\n"
+"Steps to main : " + step
);
String strippedLink;
for (int i = 0; i < links.length; i++) {
strippedLink = LinkParser.parseLink(links[i]);
if (strippedLink.contains(this.baseUrl)) {
++ step;
info(links[i]);
}
}
}
}
我已經在counstructor這個變量。但它不計算深度,因爲它只適用於遞歸的一個分支 –
我不知道如何計算遞歸的所有分支 –
@incredible_titan我認爲@hatcyl的意思是讓'step'成爲方法並在每次遞歸調用中增加它:'public void info(String url,int step){[...] info(link,step + 1); [...]}'。如果'step'在'info'之外被定義,它會計數*累計*步數。但請注意,雖然會準確測量遞歸的深度,但它不一定會讓您達到某個URL的最低步數。 –