我们的读者可能还并不是了解到底什么是递归,所以说我们现在在算法的角度之上描述一下这种功能是如何实现的。不知道大家有没有学习编程语言的经历,如果有的话那么我们一定是接触过函数或者是模块的,其实本质之上这种结构的功能就是实现一种相对独立的并且是可以连接的功能部件,如果这种功能部件在内部是蕴含了可以自己调用自己的程序的话,那么我们就是可以认为这种程序是递归的程序。
一般来说递归的程序分为两种,第一种递归的程序就是实现对于自身进行直接的调用的程序,这种程序在运行的时候自己在一定情况之下直接的调用自己从而实现一种独特的功能调用,但是需要知道的就是这种递归应当是存在一个结束的条件的,一旦是这种条件结束我们的递归程序也就是应当返回了。另外的一种递归程序算是间接的调用自身,其实和我们在第一点之中说的一样这种程序也是需要一定的条件来结束自身的,任何的递归程序都是应当在适当的时候结束自己,如果不这样的话这种无限的递归只可能是耗费干净我们的内存。
在搜索引擎蜘蛛之上这就是体现了蜘蛛在爬行之后是需要回归的,蜘蛛的一次爬行是不可能实现完全的网络分析的,所以说蜘蛛就应当是在不同的起始地址之上进行爬行。那么我们在上面说的递归的调用到底是表现在上面地方呢?其实就是连接之上。
我们可以把一个页面之上的所有连接想象成为我们的蜘蛛函数分析的递归条件,也就是说一种树形的分析方案。这就是蜘蛛的内在程序本质。