图的邻接表存储 c实现
2016-05-13 10:59
267 查看
#include <iostream> using namespace std; int n; int e; typedef struct node{ int element; node*next; }Edge; typedef Edge* AdjGraph; AdjGraph G; void Create(int maxedge){ G = (AdjGraph)malloc(sizeof(Edge)*(maxedge+5)); n=maxedge; e=0; for(int i = 1 ; i <= maxedge ; i++) { G[i].next=NULL; G[i].element=i; } } void addEdge(int p,int q){ e++; Edge* new1=(Edge*)malloc(sizeof(Edge)); new1->next=G[p].next; new1->element=q; G[p].next=new1; if(p==q) return ;//防止p==q的时候增加两次 Edge* new2=(Edge*)malloc(sizeof(Edge)); new2->next=G[q].next; new2->element=p; G[q].next=new2; } void print(){ for(int i = 1;i<=n;i++){ cout<<"i=="<<i<<endl; Edge* current=G[i].next; while(current!=NULL){ cout<<current->element<<","; current=current->next; } cout<<endl; } } int main(){ Create(5); addEdge(1,2); addEdge(2,3); addEdge(5,2); addEdge(2,2); cout<<"edges="<<e<<endl; print(); return 0; }
相关文章推荐
- SQL SERVER 对数据库的一些基本操作:创建、更改、查看、删除……
- MarkDown快速入门
- C++模板(一) ----函数模板
- mysql连接错误java.sql.SQLException: Unknown system variable 'language'
- SPOJ BALNUM Balanced Numbers 数位dp
- SQL server 2014 内存表特性概述
- 应避免absolute布局滥用
- 思源黑体下载 - Google 联合 Adobe 发布免费开源优雅的设计字体 (简繁中文/日韩文)
- ios socket 实现简单的聊天系统
- WinForm中实现HotKey
- Eclipse平台下Android SDK Manager不显示没有安装的程序扩展(不能在Eclipse平台下安装虚拟机)
- RxJava&RxAndroid学习
- win7下Python工具库安装xlwt和xlrd的安装
- JSP标签开发--详解
- BMDThread控件动态创建多线程示例
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- linux signal 处理
- log file sync 诊断脚本
- MongoDB常用命令
- 浮层引导页Activity