欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)操作

 更新時(shí)間:2018年08月18日 09:00:36   作者:data_heng  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

c語(yǔ)言代碼實(shí)現(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]; //頂點(diǎn)向量
 int arcs[MAX_VER_NUM][MAX_VER_NUM]; //鄰接矩陣
 int vexnum,arcnum;   //圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù)
 GraphType type;   //圖的種類(lèi)標(biāo)志
}MGraph; 
 
//根據(jù)名稱(chēng)得到指定頂點(diǎn)在頂點(diǎn)集合中的下標(biāo)
//vex 頂點(diǎn)
//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();
 }
}
 
//打印鄰接矩陣和頂點(diǎn)信息
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é)果如下圖所示:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++利用類(lèi)實(shí)現(xiàn)矩陣的數(shù)乘,乘法以及點(diǎn)乘

    C++利用類(lèi)實(shí)現(xiàn)矩陣的數(shù)乘,乘法以及點(diǎn)乘

    這篇文章主要為大家詳細(xì)介紹了C++如何利用類(lèi)實(shí)現(xiàn)矩陣的數(shù)乘,乘法以及點(diǎn)乘,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C++有一定幫助,需要的可以參考一下
    2022-11-11
  • C語(yǔ)言實(shí)現(xiàn)點(diǎn)菜系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)點(diǎn)菜系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)點(diǎn)菜系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語(yǔ)言光標(biāo)旋轉(zhuǎn)與倒計(jì)時(shí)功能實(shí)現(xiàn)示例詳解

    C語(yǔ)言光標(biāo)旋轉(zhuǎn)與倒計(jì)時(shí)功能實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了C語(yǔ)言實(shí)現(xiàn)光標(biāo)旋轉(zhuǎn)與倒計(jì)時(shí)功能的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • 淺析C++中類(lèi)模板的用法

    淺析C++中類(lèi)模板的用法

    C++類(lèi)模板是一種用于創(chuàng)建通用類(lèi)的工具,它允許我們定義一個(gè)通用類(lèi),支持多種類(lèi)型。本文就來(lái)簡(jiǎn)單講講它的具體使用吧,感興趣的可以了解一下
    2023-04-04
  • C++中vector容器的用法

    C++中vector容器的用法

    在c++中,vector是一個(gè)十分有用的容器。這篇文章主要介紹了C++ vector容器的用法的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-10-10
  • 基于Sizeof與Strlen的區(qū)別以及聯(lián)系的使用詳解

    基于Sizeof與Strlen的區(qū)別以及聯(lián)系的使用詳解

    本篇文章是對(duì)Sizeof與Strlen的區(qū)別以及聯(lián)系的使用進(jìn)行了詳細(xì)的介紹。需要的朋友參考下
    2013-05-05
  • c++ 如何在libuv中實(shí)現(xiàn)tcp服務(wù)器

    c++ 如何在libuv中實(shí)現(xiàn)tcp服務(wù)器

    這篇文章主要介紹了c++ 如何在libuv中實(shí)現(xiàn)tcp服務(wù)器,幫助大家更好的理解和使用libuv,感興趣的朋友可以了解下
    2021-02-02
  • C++基礎(chǔ) class、struct、union詳細(xì)

    C++基礎(chǔ) class、struct、union詳細(xì)

    這篇文章主要 給大家介紹的是C++基礎(chǔ) class、struct、union,主要由三部分組成,分別是、類(lèi)class、結(jié)構(gòu)體struct、共用體union,需要的朋友可以參考一下
    2021-09-09
  • C語(yǔ)言打印輸出楊輝三角

    C語(yǔ)言打印輸出楊輝三角

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言打印輸出楊輝三角,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 詳解C++11強(qiáng)類(lèi)型枚舉

    詳解C++11強(qiáng)類(lèi)型枚舉

    這篇文章主要介紹了C++11強(qiáng)類(lèi)型枚舉的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++11,感興趣的朋友可以了解下
    2020-08-08

最新評(píng)論