双向宽搜(PASCAL)的主要程序框架...?

[复制链接]
查看11 | 回复2 | 2011-10-15 08:35:54 | 显示全部楼层 |阅读模式
RT是双向的不是普通BFS...实在不行给过程的伪代码也可以不要太啰嗦...谢谢~
回复

使用道具 举报

千问 | 2011-10-15 08:35:54 | 显示全部楼层
procedureTfrm.FmtTree();vari,j:integer;leafList,leafListPlus:TList;leaf,subNode:TTreeNode;tv:TTreeView;//引用窗体控件qry:TADOQuery;//引用窗体控件begin//初始化leafList:=TList.Create;leafListPlus:=TList.Create;tv:=tvw1;tv.Items.Clear;qry:=qry1;subNode:=tv.Items.AddChild(nil,\'月夜风筝(我)的公司\');leafList.Add(subNode);//处理whileleafList.Count0dobeginleafListPlus.Clear;fori:=0toleafList.Count-1dobeginleaf:=leafList;ifleaf.Level=0thenqry.SQL.Text:=Format(\'selectcode,name,belongfromTBwherebelong=\'\'%s\'\'\',[\'--\'])elseqry.SQL.Text:=Format(\'selectcode,Name,belongfromTBwherebelong=\'\'%d\'\'\',[leaf.StateIndex]);qry.Open;forj:=0toqry.RecordCount-1dobeginsubNode:=tv.Items.AddChild(leaf,qry.FieldByName(\'name\').AsString);subNode.ImageIndex:=subNode.Level;subNode.StateIndex:=StrToInt(qry.FieldByName(\'code\').AsString);leafListPlus.Add(subNode);qry.Next;end;end;leafList.Assign(leafListPlus);end;//清理tv.FullExpand;leafListPlus.Free;leafList.Free;end;
回复

使用道具 举报

千问 | 2011-10-15 08:35:54 | 显示全部楼层
初始化循环体:找到元素少的一边队列,找到最后一个元素扩展搞定!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行