内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

C語言如何實現(xiàn)圖的鄰接矩陣存儲操作

小編給大家分享一下C語言如何實現(xiàn)圖的鄰接矩陣存儲操作,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)新互聯(lián)專注于三元企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城開發(fā)。三元網(wǎng)站建設(shè)公司,為三元等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

利用鄰接矩陣容易判定任意兩個頂點之間是否有邊(或?。┫噙B,并容易求得各個頂點的度。

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;   //圖的當(dāng)前頂點數(shù)和弧數(shù)
 GraphType type;   //圖的種類標(biāo)志
}MGraph; 
 
//根據(jù)名稱得到指定頂點在頂點集合中的下標(biāo)
//vex 頂點
//return 如果找到,則返回下標(biāo),否則,返回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;
}

得到的結(jié)果如下圖所示:

C語言如何實現(xiàn)圖的鄰接矩陣存儲操作

以上是“C語言如何實現(xiàn)圖的鄰接矩陣存儲操作”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享題目:C語言如何實現(xiàn)圖的鄰接矩陣存儲操作
文章分享:http://www.rwnh.cn/article46/pgseeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站排名品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
汶川县| 蕲春县| 米林县| 岐山县| 广东省| 前郭尔| 师宗县| 南木林县| 民乐县| 旌德县| 常熟市| 穆棱市| 洛扎县| 诏安县| 九江县| 尼勒克县| 锡林郭勒盟| 凉山| 花莲市| 嘉祥县| 濮阳市| 烟台市| 积石山| 江达县| 宽甸| 宿州市| 筠连县| 和林格尔县| 汾阳市| 湟源县| 土默特右旗| 太康县| 镇巴县| 偃师市| 青阳县| 北辰区| 盐池县| 诏安县| 聂荣县| 红河县| 景泰县|