【发布时间】:2012-09-17 14:30:06
【问题描述】:
我正在开发一个简化的网站下载器(编程作业),我必须递归地浏览给定 url 中的链接并将各个页面下载到我的本地目录。
我已经有一个函数可以从单个页面Set<String> retrieveLinksOnPage(URL url) 中检索所有超链接(href 属性)。此函数返回一个超链接向量。我被告知要下载第 4 级的页面。(第 0 级是主页)因此我基本上想检索网站中的所有链接,但我很难提出递归算法。最后,我打算这样调用我的函数:
retrieveAllLinksFromSite("http://www.example.com/ldsjf.html",0)
Set<String> Links=new Set<String>();
Set<String> retrieveAllLinksFromSite (URL url, int Level,Set<String> Links)
{
if(Level==4)
return;
else{
//retrieveLinksOnPage(url,0);
//I'm pretty Lost Actually!
}
}
谢谢!
【问题讨论】:
-
不要使用矢量。使用
Set和HashSet,它将删除重复的链接 -
递归的基本原则是参数之一与返回值相同。
-
错字:“相同”到“相同类型”
-
@gigadot 你可以编辑你的评论。