隐藏页面特效

数据结构复习代码——图的邻接矩阵表示法实现

1、图的邻接矩阵表示法实现

#include<stdio.h> #include<malloc.h> #include<assert.h> #define Default_Vertex_Size 10 #define T char //图的定义 typedef struct GraphMtx { int MaxVertices; int NumVertices; int NumEdge; T *VerticesList; int **Edge; }GraphMtx; //矩阵的初始化 void InitGraphMtx(GraphMtx *g) { g->MaxVertices = Default_Vertex_Size; g->NumVertices = g->NumEdge = 0; g->VerticesList = (T*)malloc(sizeof(T)*g->MaxVertices); assert(g->VerticesList!=nullptr); g->Edge = (int**)malloc(sizeof(int*)*g->MaxVertices); assert(g->Edge!=nullptr); for(int i=0;i<g->MaxVertices;++i) { g->Edge[i] = (int*)malloc(sizeof(int)*g->MaxVertices); } for(int i=0;i<g->MaxVertices;++i) { for(int j=0;j<g->MaxVertices;++j) { g->Edge[i][j] = 0; } } } void InsertVertex(GraphMtx *g,T v) { if(g->NumVertices >= g->MaxVertices) return; g->VerticesList[g->NumVertices++] = v; } //输出矩阵 void ShowGraphMtx(GraphMtx *g) { printf(" "); for(int i=0;i<g->NumVertices;++i) { printf("%c ",g->VerticesList[i]); } printf("\n"); for(int i=0;i<g->NumVertices;++i) { printf("%c ",g->VerticesList[i]); for(int j=0;j<g->NumVertices;++j) printf("%d ",g->Edge[i][j]); printf("\n"); } printf("\n"); } int main() { GraphMtx gm; InitGraphMtx(&gm); InsertVertex(&gm,'A'); InsertVertex(&gm,'B'); InsertVertex(&gm,'C'); InsertVertex(&gm,'D'); InsertVertex(&gm,'E'); //InsertVertex(&gm,'A'); ShowGraphMtx(&gm); return 0; }

 


__EOF__

本文作者往心。
本文链接https://www.cnblogs.com/lx06/p/16478599.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   往心。  阅读(142)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示