数据结构例程——图的邻接矩阵存储结构及算法
来源:互联网 发布:中国历史延续 知乎 编辑:程序博客网 时间:2024/04/30 11:08
本文是[数据结构基础系列(7):图]中第4课时[图的邻接矩阵存储结构及算法]的例程。
#include <stdio.h>#include <malloc.h>#define MAXV 100 /*最大顶点数设为100*/#define LIMITLESS 9999typedef struct{ int no; //顶点编号 char info[20]; //顶点其他信息,类型视应用而定} VertexType; //顶点类型typedef struct //图的定义{ int edges[MAXV][MAXV]; //邻接矩阵 int n, e; //顶点数,弧数 VertexType vexs[MAXV];//存放顶点信息} MGraph;//建立一个图的邻接矩阵存储void CreateMGraph(MGraph *G){ /*建立有向图G 的邻接矩阵存储*/ int i,j,k,w; printf("请输入顶点数和边数(输入格式为:顶点数 边数):"); scanf("%d %d",&(G->n),&(G->e)); /*输入顶点数和边数*/ printf("请输入顶点信息(输入格式为:顶点号 顶点描述):\n"); for (i=0; i<G->n; i++) scanf("%d %s",&(G->vexs[i].no),G->vexs[i].info); /*输入顶点信息,建立顶点表*/ for (i=0; i<G->n; i++) /*初始化邻接矩阵*/ for (j=0; j<G->n; j++) { if(i==j) G->edges[i][j]=0; else G->edges[i][j]=LIMITLESS; } printf("请输入每条边对应的两个顶点的序号及权值(输入格式为:i j w):\n"); for (k=0; k<G->e; k++) { scanf("%d %d %d",&i,&j,&w); /*输入e 条边,建立邻接矩阵*/ G->edges[i][j]=w; /*若为无权图,直接G->edges[j][i]=1;,无需输入w*/ }}/*CreateMGraph*///显示一个用邻接矩阵存储的图void DispMGraph(MGraph *G){ int i,j; printf("顶点数: %d,边数: %d\n", G->n, G->e); printf("%d 个顶点的信息::\n", G->n); for (i=0; i<G->n; i++) /*输出顶点信息*/ printf("%5d %5d %s\n", i, G->vexs[i].no, G->vexs[i].info); printf("各顶点相连的情况:\n"); printf("\t"); for (j=0; j<G->n; j++) printf("[%d]\t", j); printf("\n"); for (i=0; i<G->n; i++) { printf("[%d]\t", i); for (j=0; j<G->n; j++) { if(G->edges[i][j]==LIMITLESS) printf("∞\t"); else printf("%d\t", G->edges[i][j]); } printf("\n"); }}/*DispMGraph*/int main(){ MGraph *g; g = (MGraph *)malloc(sizeof(MGraph)); CreateMGraph(g); DispMGraph(g); return 0;}
0 0
- 数据结构例程——图的邻接矩阵存储结构及算法
- 图的邻接矩阵存储结构及算法
- 数据结构—图的存储结构(邻接矩阵)
- 数据结构:图的存储结构之邻接矩阵
- 数据结构:图的存储结构之邻接矩阵
- 数据结构:图的存储结构之邻接矩阵
- 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 数据结构—图的邻接矩阵存储
- 图的存储结构——邻接矩阵
- 图的存储结构——邻接矩阵
- 再回首,数据结构——图的常用术语,邻接矩阵、邻接表存储结构
- 【第十一周】数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 第十一周 项目一 数据结构之自建算法库——图及其存储结构(邻接矩阵、邻接表)
- 大话数据结构十八:图的存储结构之邻接矩阵
- 【数据结构笔记】3:无向图的邻接矩阵存储结构
- 图的存储结构——邻接矩阵(算法简介/c++实现)
- 数据结构—图的存储—邻接表和邻接矩阵
- hdu 1269 迷宫城堡
- 临界区,互斥量,信号量,事件的区别
- java基础之对properties配置文件的读写操作
- 黑马程序员——OC-Setter/Getter函数及@proterty和@synthesize
- 黑马程序员---集合框架(一)
- 数据结构例程——图的邻接矩阵存储结构及算法
- Java 8中的增强的Arrays
- 《剑指offer》——斐波那契数列
- 从系统角度看分布式系统的挑战
- 简单的二叉树创建及其基本的运算(C语言)
- OpenCV中IplImage图像格式与BYTE图像数据的转换
- Android录音播放工具类,仿微信语音聊天。
- mvc intranet应用程序访问出错
- Xcode6及以后版本添加.pch文件