开发工具:
文件大小: 256kb
下载次数: 0
上传时间: 2010-06-30
详细说明: 简述了图的操作 void BFSTraverse(OLGraph G){ queue q; for (int v=0; v=0; w=nextAdjvex(G)) if ( ! visited[w]) { visited[w]=true; printf("%c",G.xlist[w].data) ; printf(" "); // 访问u q.push(w); // 访问的顶点w入队列 } // if } // while } } // BFSTraverse /************************************************************************/ /* 深度优先搜索—非连通图 */ /************************************************************************/ void DFS(OLGraph G, int v) { // 从顶点v出发,深度优先搜索遍历连通图 G visited[v] = true; //cout<=0; w=nextAdjvex(G)) if (!visited[w]) DFS(G, w); // 对v的尚未访问的邻接顶点w递归调用DFS } void DFSTraverse(OLGraph G) { for (int v=0; v=0; w=nextAdjvex(G)) if(!visited[w]){ p=(CStree) malloc (sizeof(CStree)); p.data=G.xlist[v].data; p.firstchild=NUll; p.nextsibling=NUll; if(!T) T=p; else q.nextsibling=p; q=p; DFSTree(G,v,p); } } void DFStree(OLGraph &G,int v,CStree T) { CSnode p; visited[v] = false;bool first=true; for(int w=firstAdjvex(G, v);w>=0; w=nextAdjvex(G)) if(!visited[w]){ p=(CStree)malloc (sizeof(CSnode)); p.data=G.xlist[w].data; p.firstchild=NUll; p.nextsibling=NULL; } if(first){ T. /************************************************************************/ /* 插入节点 */ /************************************************************************/ void InsertVex(OLGraph &G,vertexType v) { /* 初始条件: 有向图G存在,v和有向图G中顶点有相同特征 */ /* 操作结果: 在有向图G中增添新顶点v(不增添与顶点相关的弧,留待InsertArc()去做) */ G.xlist[G.vexnum].data=v; G.xlist[G.vexnum].firstin=G.xlist[G.vexnum].firstout=NULL; G.vexnum++; //printf("成功!"); } /************************************************************************/ /* 插入弧 */ /************************************************************************/ bool InsertArc(OLGraph &G, vertexType vex1, vertexType vex2){ /* if ((G.xlist[LocateVex(G, vex1)].use==0)||(G.xlist[LocateVex(G, vex2)].use==0)) { printf("要插入的弧对应的节点不存在!!!"); return false; }*/ arcBox *arcNode = (arcBox *)malloc(sizeof(arcBox)); if(!arcNode) exit(1); arcNode->tailvex = LocateVex(G, vex1); arcNode->headvex = LocateVex(G, vex2); arcNode->tlink = G.xlist[arcNode->tailvex].firstout; arcNode->hlink = G.xlist[arcNode->headvex].firstin; G.xlist[arcNode->tailvex].firstout = G.xlist[arcNode->headvex].firstin = arcNode; G.arcnum++; return true; ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.