• 回答数

    5

  • 浏览数

    111

最爱尛草莓
首页 > 期刊论文 > 邻接表论文格式

5个回答 默认排序
  • 默认排序
  • 按时间排序

蓝冰儿雪莲

已采纳

最好是自己想,学习是自己的事!如果实在不行,可以参考别人的,也不要依样画葫芦!!

322 评论

莉莉安c

你是要把邻接表转换成邻接矩阵还是要一个邻接矩阵表示的代码啊?好像不能直接转吧#pragma once#define MAX_VERTEX_NUM 20typedef enum{DG,DN,UDG,UDN}GraphKind;#define INFINTY 1000#include using namespace std;class ArcCell{ friend class MGraph;public: int adj; int *info;};class Closedge{ friend class MGraph;public: int adjvex; int lowcost;};class MGraph{public: char vexs[MAX_VERTEX_NUM]; ArcCell arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; int vexnum,arcnum; GraphKind kind; bool Visited[MAX_VERTEX_NUM]; //bool Visted[MAX_VERTEX_NUM]; //遍历的访问数组 Closedge closedge[MAX_VERTEX_NUM];public: MGraph(void); ~MGraph(void); int LocateVex(char ch) { for(int i=0;ivexnum;i++) { if(this->vexs[i]==ch) return i; } return 0; } void CreateUND() { int vexn,arcn,i,j; cout<<"请输入节点个数:"; cin>>vexn; cout<<"请输入弧数:"; cin>>arcn; this->arcnum=arcn; this->vexnum=vexn; for(i=0;i>this->vexs[i]; } for(i=0;iarcs[i][j].info=NULL; } cout<<"请输入弧的节点及其权值:"<>a; cout<<"请输入节点2:"; cin>>b; cout<<"请输入权值大小:"; cin>>w; x=this->LocateVex(a); y=this->LocateVex(b); this->arcs[x][y].adj=w; this->arcs[y][x].adj=this->arcs[x][y].adj; }}/* void GraphPrint() { for(int i=0;iLocateVex(ch); for(int j=0;jvexnum;++j) { if(j!=k) { this->closedge[j].adjvex=ch; this->closedge[j].lowcost=this->arcs[k][j].adj; } } this->closedge[k].lowcost=0; for(int i=1;ivexnum;++i) { //k=this->minimum(); int min=1000; for(int j=0;j0 && closedge[j].lowcostvexs[k]<vexnum;j++) { if(this->arcs[k][j].adjvexs[k]; closedge[j].lowcost=this->arcs[k][j].adj; } } } } int minimum() { Closedge temp; ; for(int i=0;ivexnum;++i) { if(>closedge[i].lowcost) { [i].lowcost; } } return ; } */ void BFSTraverse() { int v,r=0,f=0; int w; int cq[20]; for(v=0;vvexnum;v++) { this->Visited[v]=0; } for(v=0;vvexnum;v++) { cq[v]=-1; } for(v=0;vvexnum;v++) { if(!this->Visited[v]) { this->Visited[v]=1; cout<vexs[v]<<"\t"; cq[r]=v; while(cq[f]!=-1) { v=cq[f]; f++; // int i; for(w=this->FirstAdjVex(v);w!=-1;w=this->NextAdjVex(v,w)) { /*for(i=0;ivexnum;i++) if(this->vexs[i]==w) break;*/ if(!this->Visited[w]) { /*for(i=0;ivexnum;i++) if(this->vexs[i]==w) break;*/ this->Visited[w]=1; cout<vexs[w]<<"\t"; r++; cq[r]=w; } } } } } } int FirstAdjVex(int u) { int i,j; for(i=0;ivexnum;i++) { if(this->vexs[u]==this->vexs[i]) break; } //for(;ivexnum;i++) for(j=0;jvexnum;j++) { if(this->arcs[i][j].adj!=INFINTY) return j;//!!!!!!! } return -1; } int NextAdjVex(int u,int w) { int i,j; for(i=0;ivexnum;i++) { if(this->vexs[u]==this->vexs[i]) break; } //for(;ivexnum;i++) /*for(j=0;jvexnum;j++) if(j==w) break*/; for(j=w;jvexnum;j++) { if(this->arcs[i][j].adj!=INFINTY&&j!=w) return j; } return -1; } void DFS(int v) { this->Visited[v]=1; cout<vexs[v]<<"\t"; int w; for(w=this->FirstAdjVex(v);w!=-1;w=this->NextAdjVex(v,w)) { /*int i; for(i=0;ivexnum;i++) if(this->vexs[i]==w) break;*/ if(!this->Visited[w]) this->DFS(w); } } void DFSTraverse() { int v; for(v=0;vvexnum;v++) this->Visited[v]=0; for(v=0;vvexnum;v++) { if(!this->Visited[v]) this->DFS(v); } }};这个是我用c++写的一个邻接矩阵没粘main函数 不知是否符合你的要求

158 评论

公山虚1

如果有对gml格式转换成邻接表或邻接矩阵有问题的请看博文或者

284 评论

水水香蓝草

用邻接表表示图进行深度优先遍历时,通常采用(栈 )来实现算法

344 评论

艾迪奥特曼

使用栈来实现算法。

用邻接表表示图进行深度优先遍历时,通常采用栈来实现算法,广度遍历使用队列。

扩展材料:

深度优先遍历:类似与树的前序遍历。从图中的某个顶点v出发,访问此顶点,然后从v的未被访问到的邻接点进行遍历,直到图中所有和v有路径相通的顶点都被访问到

注:优先访问外层节点,访问到无新顶点时,会进行回退,访问未被访问过的分支顶点。

广度优先遍历:类似于树的层序遍历。从图中的某个顶点w出发,让顶点w入队,然后顶点w再出队,并让所有和顶点w相连的顶点入队,然后再出队一个顶点t,并让所有和t相连但未被访问过的顶点入队……由此循环,指定图中所有元素都出队。

参考资料来源:

知网论文-数据结构中图的遍历算法研究

276 评论

相关问答

  • 焊接学报论文格式

    焊接学报这个不太清楚,对于医学论文的投稿我还比较清楚,之前有帮朋友通过创新医学网在《中国社区医师》上投过稿,不过我觉得现在这些发表论文的都差不多,快的也需要两个

    edward1015 4人参与回答 2023-12-08
  • 论文格式接排什么意思

    一、样式的建立 1、在Word样式编辑器里面对样式可以进行新建、修改和删除。在这里我们可以根据需要直接应用样式,修改样式或者新建样式,而论文排版一般需要三级标题

    撒野撒野王子 5人参与回答 2023-12-08
  • 论文格式直接引用和间接引用

    一、指代不同 1、间接引用:不说明引文出处,而将其编织在自已的话语中,或是引用原句,或是只引大意。 2、直接引用:直接引用原文,并加上引号,或者是只引用原文大意

    33人见人爱 5人参与回答 2023-12-09
  • 焊接导论节课论文格式

    论文格式模板(通用5篇) 论文是一个汉语词语,古典文学常见论文一词,谓交谈辞章或交流思想。下面是我给大家带来论文格式模板,欢迎阅读,希望对大家有帮助! 论文格式

    柠檬朱古力 3人参与回答 2023-12-10
  • 论文格式接排与不接排有啥区别

    在Word中,标题居中,标题后不接排的意思就是: 将标题设置为居中,而其后的内容不设置为居中。 例如上面的效果,就是标题是居中,而后面的内容不接排的效果。

    可爱滴娃 6人参与回答 2023-12-08