<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    sunfruit[請訪問http://www.fruitres.cn]

    --我相信JAVA能走得更遠 QQ:316228067

    [原創(chuàng)]圖論應用--一筆畫問題

    ??? --sunfruit
    tu1_2.gif
    上圖求一筆畫的路徑,利用圖論的相關知識可以得到程序如下:

    public class OnePath {

    ??? private static int[][]
    ??????????? links = { {0,1,1,0,0,0,1,0}, {1,0,0,1,0,0,0,1}, {1,0,0,1,1,1,0,0},
    ??????????? {0,1,1,0,1,1,0,0}, {0,0,1,1,0,1,1,0}, {0,0,1,1,1,0,0,1}, {1,0,0,0,1,0,0,0}, {0,1,0,0,0,1,0,0}
    ??? };

    ??? public OnePath() {
    ??????? int sum = 0;
    ??????? //存放每個點的度
    ??????? int[] point = new int[links[0].length];
    ??????? for (int i = 0; i < links[0].length; i++) {
    ??????????? int[] templink = links[i];
    ??????????? for (int j = 0; j < links[0].length; j++) {
    ??????????????? point[i] += templink[j];
    ??????????? }
    ??????????? sum += point[i];
    ??????? }

    ??????? //計算度數(shù)是奇數(shù)點的個數(shù),如果大于2則不能一筆畫
    ??????? int odt = 0;
    ??????? int start = -1;
    ??????? for (int i = 0; i < point.length; i++) {
    ??????????? int mod = point[i] % 2;
    ??????????? if (mod > 0) {
    ??????????????? //if(start==-1)
    ??????????????????? start = i;
    ??????????????? odt++;
    ??????????? }
    ??????? }
    ??????? if(odt>2)
    ??????? {
    ????????? System.out.println("該圖不能一筆畫");
    ????????? return;
    ??????? }
    ??????? int r = 0;
    ??????? //從一個奇數(shù)點開始計算
    ??????? int nowd=start;
    ??????? System.out.print(nowd+1);
    ??????? while (sum > 0) {
    ??????????? r=0;
    ??????????? //對于起點nowd 檢查當前的點r 是否合適
    ??????????? //links[nowd][r]==0 判斷是否有可以走的沒有用過的線路
    ??????????? //(point[r]<=1 && sum!=2) 判斷是否是最后一次,如果不是最后一次,那么避開度數(shù)是1的點
    ??????????? while (links[nowd][r]==0 || (point[r]<=1 && sum!=2)) {
    ??????????????? r++;
    ??????????? }
    ??????????? links[nowd][r]=0; //已經(jīng)用過的線路
    ??????????? links[r][nowd]=0; //已經(jīng)用過的線路 links[nowd][r] links[r][nowd]互為往返路線,用過1->2那么2->1也作廢了
    ??????????? sum=sum-2; //總度數(shù)減2 因為從1->2 消耗了1的度和2的度
    ??????????? point[nowd]--; //起點和終點的度都減1 1->2 那么1的度和2的度都減1
    ??????????? point[r]--; //起點和終點的度都減1 1->2 那么1的度和2的度都減1
    ??????????? nowd =r; //設置新的起點
    ??????????? System.out.print("->"+(r+1));
    ??????? }
    ??? }

    ??? public static void main(String[] args) {
    ??????? new OnePath();
    ??? }

    }

    posted on 2006-08-31 14:20 sunfruit 閱讀(944) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)結(jié)構(gòu)


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 国产激情免费视频在线观看 | 久久亚洲色一区二区三区| 久久久亚洲欧洲日产国码农村| 国产成人综合久久精品免费| 亚洲精品麻豆av| 久久99亚洲网美利坚合众国| 亚洲伊人久久大香线蕉影院| 中文字幕人成无码免费视频| 亚洲an天堂an在线观看| 日本视频一区在线观看免费| 亚洲中文字幕第一页在线| 一区二区三区免费视频播放器| 黄+色+性+人免费| 色偷偷亚洲第一综合网| 四虎永久免费观看| 韩国二级毛片免费播放| 免费观看久久精彩视频| 亚洲另类春色校园小说| 女人被男人桶得好爽免费视频| 免费一级毛suv好看的国产网站| 亚洲第一精品福利| 97碰公开在线观看免费视频| 暖暖免费中文在线日本 | 中文字幕视频免费| 亚洲人成伊人成综合网久久| 热久久精品免费视频| 一区二区三区免费视频观看| 亚洲av日韩专区在线观看| 男女交性永久免费视频播放| 最好免费观看高清在线| 亚洲视频手机在线| 国产亚洲AV夜间福利香蕉149| www.黄色免费网站| 国产偷国产偷亚洲高清在线| 97久久精品亚洲中文字幕无码| 我想看一级毛片免费的| a级毛片无码免费真人| 久久久免费的精品| 无码av免费网站| 99久热只有精品视频免费看| 女人隐私秘视频黄www免费|