解释
下面对过程的第7步再作一些解释。
如果新生成的结点m以前没有被生成过,即满足第1个条件,则该结点既不在OPEN表中,又不在cLOSED表中,算法建立一个从结点M到其父结点n的一个指针,并把m加入到OPEN表中。
如果新生成的结点m以前已经被生成过,即满足第2个条件,则该结点必然在OPEN表中或在cLOSED表中,在这种情况下,结点m有至少两个父结点,即从初始结点到该结点至少有两条路径,我们应当选择一条耗散值小的路径,并据此决定是否改变该结点的指针。如果原来的指针指示的路径耗散值小,该指针就不应改变。如果新的路径耗散值小,则应将m的指针改为指向n。
如果生成的结点m在cLOSED表中,即满足第3个条件,则意味着结点m已经被扩展过,它还有后继结点,那么从初始结点到这个结点增加了一条路径,就使从初始结点到结点m曲后继结点也增加了一条路径,因此也要决定是否改变结点m的后继结点的指针。
为了说明第7步中对指针的调整,下面我们来演示一个简单的例子。