C語言程式試題-01

來源:互聯網
上載者:User

標籤:鄰接矩陣   span   鄰接   oid   遍曆   ==   編號   else   表示   

  一個無向連通圖G點上的哈密爾頓(Hamiltion)迴路是指從圖G上的某個頂點出發,經過圖上所有其他頂點一次且僅一次,最後回到該頂點的路勁。一種求解無向圖上哈密爾頓迴路演算法的基礎私下如下:

  假設圖G存在一個從頂點V0出發的哈密爾頓迴路V1——V2——V3——...——Vn-1——V0。演算法從頂點V0出發,訪問該頂點的一個未被訪問的鄰接頂點V1,接著從頂點V1出發,訪問V1一個未被訪問的鄰接頂點V2,..。;對頂點Vi,重複進行以下操作:訪問Vi的一個未被訪問的鄰接接點Vi+1;若Vi的所有鄰接頂點均已被訪問,則返回到頂點Vi-1,考慮Vi-1的下一個未被訪問的鄰接頂點,仍記為Vi;知道找到一條哈密爾頓迴路或者找不到哈密爾頓迴路,演算法結束。

【C代碼】

下面是演算法的C語言實現。

(1)常量和變數說明

  n :圖G中的頂點數

  c[][]:圖G的鄰接矩陣

  k:統計變數,當期已經訪問的定點數為k+1

  x[k]:第k個訪問的頂點編號,從0開始

  visited[x[k]]:第k個頂點的訪問標誌,0表示未訪問,1表示已訪問

(2)C程式

 1 #include <stido.h> 2 #include <stidb.h> 3 #define MAX 100 4  5 void Hamilton(int n,int x[MAX,int c[MAX][MAX]){ 6   in t ; 7   in t visited[MAX]; 8   int k; 9   /*初始化x數組賀visited數組*/10   for(i=0:i<n;i++){11     x[i]=0;12     visited [i]=0;13   }14   /*訪問起始頂點*/15   k=0;16   (visited[0]=1);17   x[0]=0;18   k=k+1;19   /*訪問其他頂點*/20   while(k>=0){21     x[k]=x[k]+1;22     while(x[k]><n){23       if(visited[x[k]]==0) &&c[x-[k-1]][x[k]=1){/*鄰接頂點x[k]未被訪問過*/24         break;25       }else{26         x[k] = x[k] +1;27       }28     }29     if(x[k] <n-1&&(visited[x[k]]==1){ /*找到一條哈密爾頓迴路*/30       for(k=0;k<n;k++){31         prinf(〝%d--〝,x[k] ; /*輸出哈密爾頓迴路*/32       }33       prinf(〝%d--〝,x[0] ;34       return;35     }else if x[k]<n&&k<n-1){/*設定當期頂點的訪問標誌,繼續下一個頂點*/36       (visited[x[k]]=1);37       k=k+1;38     }else{/*沒有未被訪問過的鄰接頂點,回退到上一個頂點*/39       x[k]=0;40       visited x[k]=0;41       (k=k-1);42     }43   }44 }

【問題1】(10分)

  根據題幹說明。填充C代碼中的空(1)~(5).

  答案:代碼中標註紅色的即為答案!

【問題2】(5分)

  根據題幹說明和C代碼,演算法採用的設計策略為(6),該方法在遍曆圖的頂點時,採用的是(7)方法(深度優先或廣度優先)。

  答案:

    6:回溯法

    7:深度優先

C語言程式試題-01

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.