毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

图的存储与遍历算法-数据结构 第3页

更新时间:2009-7-22:  来源:毕业论文
图的存储与遍历算法-数据结构 第3页
//定义一个队列q,其元素类型为整形
 int front=0,rear=0;
  //定义队首和队尾指针 
 cout<<i<<' ';
  //访问Vi
 visited[i]=true;
  //标记初始点Vi已访问过
 q[++rear]=i;
 //将已访问过的初始点序号i入队
 while(front!=rear){
 //当队列非空时进行循环处理
  front=(front+1)%MaxLength;
      //删除队首元素,第一次执行时k的值为i
     int k=q[front];
     edgenode* p=GL[k];
   //取Vk邻接表的表头指针
  while(p!=NULL){
   //依次搜索Vk的每一个结点
   int j=p->adjvex; 
//Vj为Vk的一个邻接点
   if(!visited[j]){
//若Vj没有被访问过则进行处理
   cout<<j<<' ';
   visited[j]=true;
   rear=(rear+1)%MaxLength;
   q[rear]=j;
   }
      p=p->next;
  }
 }
}
void Check(int n,int & i,int & j)
//检查输入的边序号是否越界,若越界则重输
{
 while(1){
  if(i<=0||i>n||j<=0||j>n)
   cout<<"输入有误,请重新输入!";
  else return;
  cin>>i>>j;
 }
}
主函数程序文件 主函数.cpp
#include<iostream.h>
#include"图.h"
void main()
{
 int i,n,m;
   cout<<"=============="<<endl;
www.751com.cn
 cout<<"输入是否有向(0为无,1为有):";
 cin>>m;
 bool*visited=new bool[n];
   adjlist gl;
 InitGAdjoin(gl,n);
   CreateAdjoin(gl,n,m);
   cout<<"=============="<<endl;
 cout<<"图的深度优先遍历序列:"<<endl;
 for(i=1;i<=n;i++)visited[i]=false;
 dfsAdjoin(gl,visited,1,n);
 cout<<endl<<"=============="<<endl;
    cout<<"图的广度优先遍历序列:"<<endl;
 for(i=1;i<=n;i++)visited[i]=false;
 bfsAdjoin(gl,visited,1,n);
 cout<<endl;
}

上一页  [1] [2] [3] [4] 下一页

图的存储与遍历算法-数据结构 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。