图的建立与遍历c++实现(邻接矩阵存储)

  • Z4_927800
    了解作者
  • 860.3KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-17 18:33
    上传日期
这是一个关于图的建立与遍历的问题,用的是c++实现,邻接矩阵作为存储
图的建立与遍历c++实现(邻接矩阵存储).rar
  • 图的建立与遍历(邻接矩阵存储)
  • Debug
  • vc60.pdb
    108KB
  • 图的建立与遍历(邻接矩阵存储).pdb
    1MB
  • vc60.idb
    73KB
  • ww.obj
    191.2KB
  • 图的建立与遍历(邻接矩阵存储).pch
    1.9MB
  • 图的建立与遍历(邻接矩阵存储).ilk
    759.1KB
  • 图的建立与遍历(邻接矩阵存储).exe
    524.1KB
  • 图的建立与遍历(邻接矩阵存储).dsp
    4.4KB
  • 图的建立与遍历(邻接矩阵存储).opt
    47.5KB
  • ww.cpp
    1.6KB
  • 图的建立与遍历(邻接矩阵存储).plg
    980B
  • 图的建立与遍历(邻接矩阵存储).ncb
    33KB
  • 图的建立与遍历(邻接矩阵存储).dsw
    585B
内容介绍
#include<iostream> using namespace std; const int maxsize=20; class algraph { public: algraph(char a[],int n,int e); void DFSTraverse(int v); void BFSTraverse(int v); private: char vertex[maxsize]; //存放顶点的数组 int arc[maxsize][maxsize]; int vertexnum; int arcnum; int visited[maxsize]; //判断该点是否已访问 }; void main() { int n; int e; char a[10]={'0','1','2','3','4','5','6','7','8','9'}; cout<<"输入顶点的个数:"; cin>>n; cout<<"输入边数:"; cin>>e; algraph A(a,n,e); cout<<"深度优先遍历\n"; A.DFSTraverse(0); cout<<"\n"; cout<<"广度优先遍历\n"; A.BFSTraverse(0); cout<<"\n"; } algraph::algraph(char a[],int n,int e) { vertexnum=n; arcnum=e; for(int i=0;i<vertexnum;i++) { vertex[i]=a[i]; visited[i]=0; } for(int k=0;k<vertexnum;k++) for(int j=0;j<arcnum;j++) { arc[k][j]=0; } for(int m=0;m<arcnum;m++) { int i,j; cout<<"输入便的两个顶点:"; cin rel='nofollow' onclick='return false;'>>i>>j; arc[i][j]=1; arc[j][i]=1; } } void algraph::DFSTraverse(int v) { cout<<vertex[v]; visited[v]=1; for(int j=0;j<vertexnum;j++) { if(arc[v][j]==1 && visited[j]==0) DFSTraverse(j); } } void algraph::BFSTraverse(int v) { int front,rear; front=rear=0; int data[maxsize]; for(int k=0;k<vertexnum;k++) { visited[k]=0; } cout<<vertex[v]; visited[v]=1; data[++rear]=v; while(front!=rear) { int j; j=data[++front]; for(int i=0;i<vertexnum;i++) { if(arc[j][i]==1 && visited[i]==0) { cout<<vertex[i]; visited[i]=1; data[++rear]=i; } } } }
评论
    相关推荐