图的存储结构——邻接表
来源:互联网 发布:js 对象访问器 编辑:程序博客网 时间:2024/05/17 08:47
#include <iostream>#include <cstdio>#include <cstdlib>using namespace std;const int maxn=105;typedef struct EdgeNode{ int adjvex; int weight; struct EdgeNode *next;}EdgeNode;typedef struct VertexNode{ int data; EdgeNode *firstedge;}VertexNode,AdjList[maxn];typedef struct{ AdjList adjlist; int numv,nume;}GraphAdjList;void CreateALGraph(GraphAdjList *G){ int i,j,k; EdgeNode *e; printf("输入顶点数和边数\n"); scanf("%d%d",&G->numv,&G->nume); printf("输入顶点信息\n"); for(i=0;i<G->numv;i++) { scanf("%d",&G->adjlist[i].data); G->adjlist[i].firstedge=NULL; } printf("输入边的信息(i,j)\n"); for(k=0;k<G->nume;k++) { scanf("%d%d",&i,&j); e=(EdgeNode *)malloc(sizeof(EdgeNode)); e->adjvex=j; e->next=G->adjlist[i].firstedge; G->adjlist[i].firstedge=e; //printf("%d\n",G->adjlist[i].firstedge->adjvex); e=(EdgeNode *)malloc(sizeof(EdgeNode)); e->adjvex=i; e->next=G->adjlist[j].firstedge; G->adjlist[j].firstedge=e; //printf("%d\n",G->adjlist[j].firstedge->adjvex); }}int main(){ GraphAdjList *G=(GraphAdjList *)malloc(sizeof(GraphAdjList)); CreateALGraph(G); for(int i=0;i<G->numv;i++) { printf("当前节点:%d ",G->adjlist[i].data); EdgeNode *firstedge=G->adjlist[i].firstedge; while(firstedge!=NULL) { printf("%d ",firstedge->adjvex); firstedge=firstedge->next; } printf("\n"); } return 0;}
阅读全文
0 0
- 图的存储结构——邻接表的建立
- 图的存储结构——邻接表
- 图的存储结构——邻接表
- 图的存储结构——邻接链表
- 图的存储结构——邻接表
- 图的存储结构—邻接矩阵、邻接表
- 图的邻接表存储结构
- 图的邻接表存储结构
- 图的存储结构(邻接表)
- 图的常用存储结构----邻接表
- 图的邻接表存储结构
- 图的邻接表存储结构
- 图的存储结构 --- 邻接表
- 图的常用存储结构----邻接表
- 图的存储结构-邻接表
- 邻接表 图的存储结构
- 7.2图的存储结构(邻接表)
- 图的存储结构之邻接表
- bzoj1725 [USACO2006NOV]Corn Fields牧场的安排(状压dp)
- 十大恐怖CMD
- 短平快!不用公式也能多条件查询
- android API 学习 权限学习(一)
- display:flex垂直居中
- 图的存储结构——邻接表
- 【C++11】新特性——引入nullprt
- EmbeddedViewRef
- JNat外网访问时出现localhost地址怎么办
- 简化的 MapReduce 驱动程序:默认值显式设置
- 《Spring AOP学习总结之二—XML配置实现AOP功能》
- 如何用Puppet和Augeas管理Linux配置
- java接口思想
- 练习赛A题