数据结构c语言版 无向图的邻接多重表存储表示和实现

数据结构c语言版 无向图的邻接多重表存储表示和实现

ID:18963585

大小:54.00 KB

页数:22页

时间:2018-09-27

数据结构c语言版 无向图的邻接多重表存储表示和实现_第1页
数据结构c语言版 无向图的邻接多重表存储表示和实现_第2页
数据结构c语言版 无向图的邻接多重表存储表示和实现_第3页
数据结构c语言版 无向图的邻接多重表存储表示和实现_第4页
数据结构c语言版 无向图的邻接多重表存储表示和实现_第5页
资源描述:

《数据结构c语言版 无向图的邻接多重表存储表示和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构C语言版无向图的邻接多重表存储表示和实现数据结构C语言版无向图的邻接多重表存储表示和实现.txt只要你要,只要我有,你还外边转什么阿老实在我身边待着就行了。  听我的就是,问那么多干嘛,我在你身边,你还走错路!跟着我!不能给你幸福是我的错,但谁让你不幸福,我TMD去砍了他 /*数据结构C语言版无向图的邻接多重表存储表示和实现P166编译环境:Dev-C++4.9.9.2日期:2011年2月15日*/#include#include#defineMAX_NAME3//顶点字符串的最大长度+1#defineMAX_INFO80//相关信息

2、字符串的最大长度+1typedefcharInfoType;typedefcharVertexType[MAX_NAME];//字符串类型//AMLGraph.h无向图的邻接多重表存储表示#defineMAX_VERTEX_NUM20typedefenum{unvisited,visited}VisitIf;typedefstructEBox{VisitIfmark;//访问标记intivex,jvex;//该边依附的两个顶点的位置structEBox*ilink,*jlink;//分别指向依附这两个顶点的下一条边InfoType*info;//该边信息指针}EBox;typed

3、efstruct{VertexTypedata;EBox*firstedge;//指向第一条依附该顶点的边}VexBox;typedefstruct{VexBoxadjmulist[MAX_VERTEX_NUM];intvexnum,edgenum;//无向图的当前顶点数和边数}AMLGraph;typedefintQElemType;//单链队列--队列的链式存储结构typedefstructQNode{QElemTypedata;//数据域structQNode*next;//指针域}QNode,*QueuePtr;typedefstruct{QueuePtrfront,//

4、队头指针,指针域指向队头元素rear;//队尾指针,指向队尾元素}LinkQueue;//若G中存在顶点u,则返回该顶点在无向图中位置;否则返回-1intLocateVex(AMLGraphG,VertexTypeu){inti;for(i=0;i

5、x*p;printf("请输入无向图G的顶点数,边数,边是否含其它信息(是:1,否:0):");scanf("%d,%d,%d",&(*G).vexnum,&(*G).edgenum,&IncInfo);printf("请输入%d个顶点的值(<%d个字符):",(*G).vexnum,MAX_NAME);for(i=0;i<(*G).vexnum;++i)//构造顶点向量{scanf("%s",(*G).adjmulist[i].data);(*G).adjmulist[i].firstedge=NULL;}printf("请顺序输入每条边的两个端点(以空格作为间隔):"

6、);for(k=0;k<(*G).edgenum;++k)//构造表结点链表{scanf("%s%s%*c",va,vb);//%*c吃掉回车符i=LocateVex(*G,va);//一端j=LocateVex(*G,vb);//另一端p=(EBox*)malloc(sizeof(EBox));p->mark=unvisited;//设初值p->ivex=i;p->jvex=j;p->info=NULL;p->ilink=(*G).adjmulist[i].firstedge;//插在表头(*G).adjmulist[i].firstedge=p;p->jlink=(*G).a

7、djmulist[j].firstedge;//插在表头(*G).adjmulist[j].firstedge=p;if(IncInfo)//边有相关信息{printf("请输入该弧的相关信息(<%d个字符):",MAX_INFO);gets(s);l=strlen(s);if(l){p->info=(char*)malloc((l+1)*sizeof(char));strcpy(p->info,s);}}}return1;}//返回v的值VertexType*GetVex(AM

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。