邻接表创建图
来源:互联网 发布:西南大学网络学费多少 编辑:程序博客网 时间:2024/06/11 05:33
#include<iostream>#include<malloc.h>#include<string.h>#include<string>#include<iomanip>using namespace std;typedef char ver[4];typedef char info;typedef int vr;#define max 50 //最大顶点个数typedef struct arcnode //节点的类型的定义{int adj; // 弧指向的顶点的信息info *info; //与弧相关的信息struct arcnode *nextarc;//指向下一个与该顶点向邻接的顶点}arcnode;typedef struct vnode{ver data; //储存顶点arcnode *firstarc; //第一个与该顶点邻接的顶点}vnode,adjlist[max];typedef struct{adjlist vertex;int vexnum,arcnum; //图的顶点数目与弧的数目}adjgraph;int locate(adjgraph g,ver v) //返回图中顶点对应的位置{int i;for(i=0;i<g.vexnum;i++) if(strcmp(g.vertex[i].data,v)==0)return i;return -1;}void creategraph(adjgraph *g) //采用邻接表储存结构 创建无向图{int i,j,k;ver v1,v2; //定义两个顶点v1 v2arcnode *p;cout<<"请输入图的顶点数,边数(逗号分割):"<<endl;cin>>(*g).vexnum>>(*g).arcnum; // 输入顶点数 和 边数cout<<"请输入n个顶点的值:"<<endl;for(i=0;i<g->vexnum;i++) //{cin>>g->vertex[i].data;g->vertex[i].firstarc=NULL; //将相关联的顶点置为空}cout<<"请输入弧尾和弧头:"<<endl;for(k=0;k<g->arcnum;k++){cin>>v1>>v2;i=locate(*g,v1); //查找该v1顶点是否存在j=locate(*g,v2); //同理//j为弧头 i为弧尾 创建邻接表p=(arcnode*)malloc(sizeof(arcnode));p->adj=j;p->info=NULL;p->nextarc=g->vertex[i].firstarc;g->vertex[i].firstarc=p;//i为弧头j为弧尾创建邻接表p=(arcnode*)malloc(sizeof(arcnode));p->adj=i;p->info=NULL;p->nextarc=g->vertex[j].firstarc;g->vertex[j].firstarc=p;}}void displaygraph(adjgraph g) //输出图的邻接矩阵{int i;arcnode *p;cout<<g.vexnum<<"个顶点:"<<endl;for(i=0;i<g.vexnum;i++)cout<<g.vertex[i].data<<" "; //输出各个顶点cout<<endl;cout<<2*g.arcnum<<"条边"<<endl;for(i=0;i<g.vexnum;i++){p=g.vertex[i].firstarc;while(p){cout<<g.vertex[i].data<<"->"<<g.vertex[p->adj].data<<" ";p=p->nextarc;}cout<<endl;}}int main(){adjgraph g;cout<<"采用邻接矩阵创建无向图g:"<<endl; creategraph(&g); cout<<"输出无向图g:"<<endl; displaygraph(g); }
阅读全文
0 0
- 邻接表创建图
- 邻接表创建图
- 邻接表创建图
- 图的创建(邻接表)
- 邻接链表创建图
- 图的邻接表创建输出
- 图的邻接表的创建
- 图的邻接表创建以及遍历
- 【练习】邻接表法创建图
- 邻接表的创建
- 邻接表的创建
- 创建邻接表(AdjacencyList)
- 【数据结构】邻接表创建_CreateALGraph
- 图论------创建邻接表图,打印邻接表图,无权最短路径输出函数
- 图的邻接表的创建与遍历
- 图的邻接表的创建与遍历
- 邻接表实现的图创建及遍历源码
- 图的邻接表创建和深度优先搜索
- 20170809(线段树)
- 字典树的构建
- apache- httpcomponents-core4.4.6 学习笔记
- 求某个SN按某个值最大值一栏
- 二分图匹配 --- 最大独立集
- 邻接表创建图
- [多校补题]2017 Multi-University Training Contest 5 solutions BY 吉如一
- Hive 结构[笔记2]
- [HDU
- springmvc上传文件
- 欢迎使用CSDN-markdown编辑器
- 获取当前桌面
- 20170806(单调栈和单调队列 蛇形填数)
- 总结