图的存储结构——邻接表
来源:互联网 发布:如何解绑淘宝手机号码 编辑:程序博客网 时间:2024/06/07 03:52
/*图的存储结构——邻接表*/#include<stdio.h>#include<stdlib.h>#define MAXVEX 100 /*最大顶点数*/typedef char VertexType; /*顶点*/typedef int EdgeType; /*边上的权值*/typedef struct EdgeNode /*边表结点*/{ int adjvex; /*邻接点域,存储该顶点对应的下标*/ EdgeType weight; /*用于存储权值,对于非网图可以不需要*/ struct EdgeNode * next; /*链域,指向下一个邻接点*/}EdgeNode;typedef struct VertexNode /*顶点表结点*/{ VertexType data; /*顶点表结点*/ EdgeNode * firstedge; /*边表头指针*/}VertexNode,AdjList[MAXVEX];typedef struct { AdjList adjList; int numVertexes,numEdge; /*图中当前顶点数和边数*/}GraphAdjList;/*建立图的邻接表结构(无向图)*/void GreateALGraph(GraphAdjList * G){ int i,j,k; EdgeNode * e; printf("输入顶点数和边数:\n"); scanf("%d%d",&G->numVertexes,&G->numEdge); /*输入顶点数和边数*/ for(i=0;i<G->numVertexes;i++) /*读入顶点信息,建立顶点表*/ { scanf(" %c",&G->adjList[i].data); /*输入顶点信息*/ G->adjList[i].firstedge=NULL; /*将边表置空表*/ } for(k=0;k<G->numEdge;k++) /*建立边表*/ { printf("输入边(Vi,Vj)上的顶点序号:\n"); scanf("%d%d",&i,&j); /*输入(Vi,Vj)上的顶点序号*/ e=(EdgeNode *)malloc(sizeof(EdgeNode)); /*向内存申请空间,生成边表结点*/ e->adjvex=j; /*邻接序号为j*/ e->next=G->adjList[i].firstedge; /*将e指针指向当前顶点指向的结点*/ G->adjList[i].firstedge=e; /*将当前顶点的指针指向e*/ //(头插法) e=(EdgeNode *)malloc(sizeof(EdgeNode)); /*向内存申请空间,生成边表结点*/ e->adjvex=i; /*邻接序号为i*/ e->next=G->adjList[j].firstedge; /*将e指针指向当前顶点指向的结点*/ G->adjList[j].firstedge=e; /*将当前顶点的指针指向e*/ //(头插法) }}int main(){ return 0;}
0 0
- 图的存储结构——邻接表的建立
- 图的存储结构——邻接表
- 图的存储结构——邻接表
- 图的存储结构——邻接链表
- 图的存储结构——邻接表
- 图的存储结构—邻接矩阵、邻接表
- 图的邻接表存储结构
- 图的邻接表存储结构
- 图的存储结构(邻接表)
- 图的常用存储结构----邻接表
- 图的邻接表存储结构
- 图的邻接表存储结构
- 图的存储结构 --- 邻接表
- 图的常用存储结构----邻接表
- 图的存储结构-邻接表
- 邻接表 图的存储结构
- 7.2图的存储结构(邻接表)
- 图的存储结构之邻接表
- Python的简介、下载及安装
- 从源码带看Volley的缓存机制
- DMLC深盟分布式深度机器学习开源平台解析
- 架构属于您自己的WebApp-2048游戏
- xargs 命令
- 图的存储结构——邻接表
- 透过浏览器看HTTP缓存
- Linked List Cycle
- 【转】Linux read命令用法详解
- TCP/IP的三次握手与四次挥手
- 图的遍历——深度优先遍历——邻接矩阵
- 第十二周 【项目1 - 教师兼干部类】
- tiny4412电容屏幕触摸屏驱动-ft5406芯片
- 第十周项目3——点类派生直线类