蓝桥-图2-广度优先遍历初识

    xiaoxiao2021-03-26  27

    package com.jkxy.photo; public class WideTraverse { static int e[][]={{0,0,0,0,0,0}, {0,0,1,1,99,1}, {0,1,0,99,1,99}, {0,1,99,0,99,1}, {0,99,1,99,0,99}, {0,1,99,1,99,0}}; static int head,tail,cur,i; static int que[]=new int[100]; static int book[]={0,0,0,0,0,0,0,0,0,0,0}; public static void main(String[] args) { head=1;tail=1; que[tail]=1; tail++; book[1]=1; while(head<tail){ cur=que[head]; for(i=1;i<=5;i++){ if(e[cur][i]==1&&book[i]==0){ que[tail]=i; tail++; book[i]=1; } if(tail>5){ break; } } head++; } for(i=1;i<tail;i++){ System.out.println(que[i]); } } } //1--》1235--》12354 //首先定义图对应的二维数组,初始化空队列, //从顶点1开始,把1加入队列,把1标为已访。 //队列非空,则循环把与当前访问顶点Cur=que[head]编号相连未访过的顶点编号i(循环可能1,2,3,4,5) //加入队列,i标为已访。尾巴大于顶点数,break。对i广挖后把头++。 //最后循环输出队列即可。 //时间充裕的话可以用集合类QUEUE修改一下会更好
    转载请注明原文地址: https://ju.6miu.com/read-664042.html

    最新回复(0)