小編給大家分享一下C語言如何實現(xiàn)圖的鄰接矩陣存儲操作,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在海陽等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計、成都做網(wǎng)站 網(wǎng)站設計制作按需網(wǎng)站策劃,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,成都品牌網(wǎng)站建設,全網(wǎng)營銷推廣,外貿網(wǎng)站制作,海陽網(wǎng)站建設費用合理。利用鄰接矩陣容易判定任意兩個頂點之間是否有邊(或弧)相連,并容易求得各個頂點的度。
c語言代碼實現(xiàn)如下:
#include<stdio.h> #include<stdlib.h> #define MAX_VER_NUM 50 typedef char VertexType; typedef enum { DG,UDG }GraphType; typedef struct { VertexType vexs[MAX_VER_NUM]; //頂點向量 int arcs[MAX_VER_NUM][MAX_VER_NUM]; //鄰接矩陣 int vexnum,arcnum; //圖的當前頂點數(shù)和弧數(shù) GraphType type; //圖的種類標志 }MGraph; //根據(jù)名稱得到指定頂點在頂點集合中的下標 //vex 頂點 //return 如果找到,則返回下標,否則,返回0 int getIndexOfVexs(char vex,MGraph *MG) { int i; for(i=1;i<=MG->vexnum;i++) { if(MG->vexs[i]==vex) { return i; } } return 0; } //創(chuàng)建鄰接矩陣 void create_MG(MGraph *MG) { int i,j,k; int v1,v2,type; char c1,c2; printf("Please input graph type DG(0) or UDG(1):"); scanf("%d",&type); if(type==0) { MG->type=DG; } else if(type==1) { MG->type=UDG; } else { printf("Please input correct graph type DG(0) or UDG(1)!"); return; } printf("Please input vexnum:"); scanf("%d",&MG->vexnum); printf("Please input arcnum:"); scanf("%d",&MG->arcnum); getchar(); for(i=1;i<=MG->vexnum;i++) { printf("Please input %dth vex(char):",i); scanf("%c",&MG->vexs[i]); getchar(); } //初始化鄰接矩陣 for(i=1;i<=MG->vexnum;i++) { for (j=1;j<=MG->vexnum;j++) { MG->arcs[i][j]=0; } } //輸入邊的信息,建立鄰接矩陣 for(k=1;k<=MG->arcnum;k++) { printf("Please input %dth arc v1(char) v2(char):",k); scanf("%c %c",&c1,&c2); v1=getIndexOfVexs(c1,MG); v2=getIndexOfVexs(c2,MG); if(MG->type==-1) { MG->arcs[v1][v2]=MG->arcs[v2][v1]=1; } else { MG->arcs[v1][v2]=1; } getchar(); } } //打印鄰接矩陣和頂點信息 void print_MG(MGraph MG) { int i,j; if(MG.type==DG) { printf("Graph type: Direct graph\n"); } else { printf("Graph type: Undirect graph\n"); } printf("Graph vertex number: %d\n",MG.vexnum); printf("Graph arc number: %d\n",MG.arcnum); printf("Vertex set:"); for(i=1;i<=MG.vexnum;i++) { printf("%c",MG.vexs[i]); } printf("\nAdjacency Matrix:\n"); for(i=1;i<=MG.vexnum;i++) { for(j=1;j<=MG.vexnum;j++) { printf("%d",MG.arcs[i][j]); } printf("\n"); } } //主函數(shù) int main(void) { MGraph MG; create_MG(&MG); print_MG(MG); return 0; }
得到的結果如下圖所示:
以上是“C語言如何實現(xiàn)圖的鄰接矩陣存儲操作”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站jinyejixie.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前標題:C語言如何實現(xiàn)圖的鄰接矩陣存儲操作-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article32/dhdgpc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿建站、外貿網(wǎng)站建設、微信小程序、服務器托管、網(wǎng)站導航、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容