<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)]圖論應(yīng)用--一筆畫問題

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

    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 檢查當(dāng)前的點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; //設(shè)置新的起點
    ??????????? System.out.print("->"+(r+1));
    ??????? }
    ??? }

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

    }

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产18禁黄网站免费观看| 国产一级淫片a免费播放口之| 亚洲av再在线观看 | 精品亚洲一区二区| 免费国产黄网站在线观看动图| 日本免费一区尤物| 看Aⅴ免费毛片手机播放| 黄色网页在线免费观看| 亚洲午夜AV无码专区在线播放 | 亚洲国产韩国一区二区| 亚洲第一网站免费视频| 亚洲精品中文字幕无码AV| 97碰公开在线观看免费视频| 亚洲国产精品白丝在线观看| 国产精品无码免费播放| 亚洲av无码有乱码在线观看| 国产午夜影视大全免费观看| 视频免费1区二区三区| 亚洲精品美女久久777777| 久久久精品2019免费观看| 亚洲国产精品午夜电影| 猫咪社区免费资源在线观看 | 黄色a级片免费看| 亚洲中文字幕无码久久精品1| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 婷婷亚洲天堂影院| 任你躁在线精品免费| 亚洲一级高清在线中文字幕| 国产一级淫片a视频免费观看| 中文字幕不卡免费视频| 亚洲导航深夜福利| 国产国产人免费人成免费视频| 男女一进一出抽搐免费视频 | 国产又黄又爽又猛的免费视频播放| 一级特级aaaa毛片免费观看| 亚洲精品视频在线| 日韩中文字幕在线免费观看| 免费在线看污视频| 亚洲GV天堂GV无码男同| 亚洲an天堂an在线观看| 国产做床爱无遮挡免费视频|