데이터 구조 - 그림 - C 언어 - 인접 행렬
공식 표기 법
#include <stdio.h>
#include <stdlib.h>
#define MaxVertexNum 50
typedef int WeightType;
typedef int Vertex;
typedef int DataType;
/* */
typedef struct GNode *pGNode;
struct GNode {
int nv;//
int ne;//
WeightType G[MaxVertexNum][MaxVertexNum];
DataType data[MaxVertexNum];
};
typedef pGNode MGraph;
/* */
typedef struct ENode *pENode;
struct ENode {
Vertex v, w;// v->w
WeightType weight;//
};
typedef pENode Edge;
/*
*@program
*@param vertexNum
*@return graph
*/
MGraph createGraph(int vertexNum) {
Vertex v, w;
MGraph graph;
graph = (MGraph)malloc(sizeof(GNode));
graph->ne = 0;
graph->nv = vertexNum;
for (v = 0; v < graph->nv; v++)
for (w = 0; w < graph->nv; w++)
graph->G[v][w] = 0;
return graph;
}
void insertEdge(MGraph graph, Edge edge) {
graph->G[edge->v][edge->w] = edge->weight;
}
MGraph buildGraph() {
MGraph graph;
int vertex;
scanf(" %d", &vertex);
graph = createGraph(vertex);
scanf(" %d", &(graph->ne));// !!!!!
if (graph->ne != 0) {
for (int i = 0; i < graph->ne; i++) {
Edge edge = (Edge)malloc(sizeof(struct ENode));
scanf(" %d", &edge->v);
scanf(" %d", &edge->w);
scanf(" %d", &edge->weight);
insertEdge(graph, edge);
}
}
for (int i = 0; i < vertex; i++) {
scanf("%c", &(graph->data[i]));
}
}
응시 표기 법
int g[MAX][MAX],nv,ne;
void createGraph(){
int vertex;
int v,w,weight;
int ne;
for(int i=0;v<vertex;v++)
for(int j=0;w<vertex;w++)
g[i][j]=0;
scanf("%d",&ne);
for(int i=0;i<ne;i++){
scanf("%d %d %d",&v,&w,&weight);
g[v][w]=weight;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.