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

来源:互联网 发布:logistic数据输入 编辑:程序博客网 时间:2024/06/02 12:38
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修改一下会更好
0 0
原创粉丝点击