還是上面那道題:
深度遍歷一般是用遞迴,深度不斷增加,廣度搜尋一般用佇列這樣的形式儲存東西;
#include
#include
using
namespace
std;
struct note
;int main()
,book[51][51]=;
int next[4][2]=,,,};
int head,tail;
int i,j,k,n,m,startx,starty,p,q,tx,ty,flag;
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;i<=m;j++)
scanf("%d",&a[i][j]);
scanf("%d %d %d %d",&startx,&starty,&p,&q);
//佇列初始化
head = 1;
tail = 1;
que[tail].x = startx;
que[tail].y = starty;
que[tail].f = 0;//輸出路徑用的
que[tail].s = 0;
tail++;
book[startx][starty] = 1;
flag = 0;
while(head < tail)
if(tx == p && ty == q)
}if(flag == 1)
break;
head++;
}printf("%d",que[tail-1].s);
getchar();
return
0;}
廣度優先遍歷
廣度優先遍歷 breadth first search 類似於對樹的層序遍歷 遍歷規則為 首先訪問初始點vi,並將其標記為已訪問過,接著訪問vi的所有未被訪問過的鄰接點,其訪問次序可以任意,假定依次為vi1,vi2,vit,並均標記為已訪問過,然後在按照vi1,vi2,vit的次序,訪問每乙個頂點的...
廣度優先遍歷
def printnodeatlevel treenode,level 按層序遍歷輸出樹中某一層的值 if not treenode or level 0 return 0 if level 0 print treenode.val return 1 printnodeatlevel treenod...
廣度優先遍歷
在廣度優先遍歷中,需要運用到佇列,在佇列中,才能更快更方便的實現將每乙個的可能性遍歷到。下面是一段廣搜的模板 include include include include include using namespace std struct node cur,nexxt queuequ int m...