急!怎样能够得到一个网站的目录和文件树(解决方案)

happyer 2001-09-15 01:33:11
http连接没有问题。
但是给了程序网站首页地址后,程序开始搜索所有链接(非此站点本身页面不管),但页面链接会出现死循环,比如A-->B-->A 或者 A-->B-->C-->A等等情况。

程序如果直接找所有链接的话,会循环的。
怎样能够得到一个高效的解决方案呢?

这应该是属于算法,不过我用CB,就贴这里了。
希望大家多帮忙啊。
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyer 2001-09-18
  • 打赏
  • 举报
回复
没人回答,就结贴了。
happyer 2001-09-16
  • 打赏
  • 举报
回复
我现在希望的是,用一个什么结构方法一类的东西,怎样才能用语言描述出这样一棵目录/文件结构树?
在每个文件中搜索所有链接,并判断属于哪一级,这个应该不太难,但是怎样描述出来这棵树,我就不明白了.
happyer 2001-09-15
  • 打赏
  • 举报
回复
虽然我感觉写的有道理,不过我根本没看懂怎么回事。
希望多解释解释,可以吗?
可能我有些笨。
谢谢!
biggo 2001-09-15
  • 打赏
  • 举报
回复
保存连接目录树,比如有a,b,c,d,e,f页面,他们的连接次序为a-b-c-a 和a-b-c-d-e-f
或a-b-e-c当搜索到c页面的时候,检查下面的子连接,有a和d,然后把a和d与父a-b连接比较,就可以吧c页面下的a连接删除,当遇到第三种路径,可以不同的方式到达同一页面,就必须在搜索该页面的同时,先检查,是否该页面已经下载。
伪代码如下

function downloadpage(address)
{
if (!address.Isload()) //判断页面是否下载
{
getpage(address); //得到该地址页面
parentnode = getparentnode(address); //得到页面父节点
childnode = getchildnode(address); //得到子节点
childnode.delparentnode(parentnode); //在子节点中删除和父节点相同的节点
downloadchildpage(childnode); //下载子节点页面
}
}

function dowloadchildpage(childnode)
{
int length = childnode.getlength();
int i;
for (i=0; i<length; i++)
{
downloadpage(childnode[i].address);
}
}
dycdyc123 2001-09-15
  • 打赏
  • 举报
回复
Up;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧