C 언어 구현 그림 의 인접 행렬 저장 작업
c 언어 코드 는 다음 과 같다.
#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; //
GraphType type; //
}MGraph;
//
//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;
}
//
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
");
}
else
{
printf("Graph type: Undirect graph
");
}
printf("Graph vertex number: %d
",MG.vexnum);
printf("Graph arc number: %d
",MG.arcnum);
printf("Vertex set:");
for(i=1;i<=MG.vexnum;i++)
{
printf("%c",MG.vexs[i]);
}
printf("
Adjacency Matrix:
");
for(i=1;i<=MG.vexnum;i++)
{
for(j=1;j<=MG.vexnum;j++)
{
printf("%d",MG.arcs[i][j]);
}
printf("
");
}
}
//
int main(void)
{
MGraph MG;
create_MG(&MG);
print_MG(MG);
return 0;
}
얻 은 결 과 는 다음 그림 과 같다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.