原创 LC-检索

2013-11-15 12:35 741 9 1
line void LC(tree T,float cost) {
//为找一个答案结点检索T
0 if(T是答案结点) {输出T;return;}
1 E=T; //E-结点
2 将活结点表初始化为空;
3 while(1) {
4 for(E的每个子结点X) {
5 if(X是答案结点) {输出从X到T的路径;
6 return7 };//endif
8 Add(X); //X是新的活结点
9 Parent(X)=E; //指示到根的路径
10 };//for
11 if(不再有活结点) { print(‘no answer node’);
12 stop;
13 };//if
14 Least(E) ;
15 } //while
16 }//LC

  实际上,,LC算法与状态空间树的宽度优先检索算法和D-检索算法基本相同。如果活结点表作为一个队列来实现,用Least(X)和Add(X)算法从队列中删去或加入元素,则LC就转换成FIFO检索。如果活结点表作为一个栈来实现,用Least(X)和Add(X)算法从栈中删去或加入元素,则LC就转换成LIFO检索。唯一的不同之处在于活结点表的构造上,即仅在于得到下一个E-结点所使用的选择规则不同。

作者: 李肖遥, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3912462.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条