1. 程式人生 > >廣搜-最短路徑

廣搜-最短路徑

package aha;
//廣搜
import java.util.Scanner;

public class guangsoutu {
	public static void main(String[] args) {
		int tail,head;
		int book[]=new int [100];
		int e[][]=new int [100][100];
		int que[]=new int [10000];
		Scanner sc=new Scanner (System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		//初始化矩陣
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				if(i==j)
					e[i][j]=0;
				else
					e[i][j]=9999;	
			}
		}
		//初始化邊
		for(int i=1;i<=m;i++){
			int a=sc.nextInt();
			int b=sc.nextInt();
			e[a][b]=1;
			e[b][a]=1;
		}
		
		tail=1;
		head=1;
		que[tail]=1;
		tail++;
		book[1]=1;
		
		while(head<tail){
			int cur=que[head];//head 加入佇列   
			for(int i=1;i<=n;i++){
				if(e[cur][i]==1&&book[i]==0){
					que[tail]=i;
					tail++;
					book[i]=1;
				}
				if(tail>n){
					break;
				}
			}
			
			head++;	
		}
		for(int i=1;i<tail;i++){
			System.out.println(que[i]);
		}
		
	}

}