廣度優先遍歷

2021-07-27 17:48:00 字數 904 閱讀 5607

還是上面那道題:

深度遍歷一般是用遞迴,深度不斷增加,廣度搜尋一般用佇列這樣的形式儲存東西;

#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...