源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

图的邻接表存储表示示例讲解

  • 时间:2020-08-31 19:17 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:图的邻接表存储表示示例讲解
[u]复制代码[/u] 代码如下:
//---------图的邻接表存储表示------- #include<stdio.h> #include<stdlib.h> #define MAX_VERTEXT_NUM 20 typedef int InfoType; typedef char VertextType; typedef struct ArcNode {     int adjvex;     struct ArcNode *nextArc;     InfoType *info; }ArcNode; typedef struct VNode {     VertextType data;     ArcNode *firstArc; }VNode, AdjList[MAX_VERTEXT_NUM]; typedef struct {     AdjList verTices;     int vexNum;     int arcNum;     int kind; }ALGraph; void CreateGraph(ALGraph *G); void DisplayGraph(ALGraph *G); int main() {     ALGraph *Graph = (ALGraph *)malloc(sizeof(ALGraph));     CreateGraph(Graph);     DisplayGraph(Graph);     system("pause"); } void CreateGraph(ALGraph *G) {     int i,j,k;     ArcNode *arcNode;     printf_s("请输入顶点数和边数:");     scanf_s("%d,%d",&G->vexNum, &G->arcNum);     //建立顶点表     printf_s("建立顶点表\n");     for (i = 0; i < G->vexNum; i++)     {         printf_s("请输入第%d个顶点:", i);         fflush(stdin);//刷新缓冲区         G->verTices[i].data = getchar();         G->verTices[i].firstArc = NULL;     }     //建立边表     printf_s("建立边表\n");     for (k = 0; k < G->arcNum; k++)     {         printf_s("请输入(vi-vj)的顶点对序号");         scanf_s("%d,%d", &i, &j);         arcNode = (ArcNode *)malloc(sizeof(ArcNode));         arcNode->adjvex = j;         arcNode->nextArc = G->verTices[i].firstArc;//插入表头         G->verTices[i].firstArc = arcNode;         arcNode = (ArcNode *)malloc(sizeof(ArcNode));         arcNode->adjvex = i;         arcNode->nextArc = G->verTices[j].firstArc;//插入表头         G->verTices[j].firstArc = arcNode;     } } void DisplayGraph(ALGraph *G) {     int i;     for (i = 0; i < G->vexNum; i++)     {         printf_s("%d->", i);         while (G->verTices[i].firstArc != NULL)         {             printf_s("%d->", G->verTices[i].firstArc->adjvex);             G->verTices[i].firstArc = G->verTices[i].firstArc->nextArc;         }         printf_s("\n");     } }
[img]http://files.jb51.net/file_images/article/201311/20131126093552.jpg?2013102693624[/img]
[u]复制代码[/u] 代码如下:
请输入顶点数和边数:6,7 建立顶点表 请输入第0个顶点:0 请输入第1个顶点:1 请输入第2个顶点:2 请输入第3个顶点:3 请输入第4个顶点:4 请输入第5个顶点:5 建立边表 请输入(vi-vj)的顶点对序号0,1 请输入(vi-vj)的顶点对序号0,4 请输入(vi-vj)的顶点对序号1,4 请输入(vi-vj)的顶点对序号1,5 请输入(vi-vj)的顶点对序号2,3 请输入(vi-vj)的顶点对序号2,5 请输入(vi-vj)的顶点对序号3,5 0->4->1-> 1->5->4->0-> 2->5->3-> 3->5->2-> 4->1->0-> 5->3->2->1-> 请按任意键继续. . .
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部