图的深度优先遍历----递归
来源:互联网 发布:函数返回字符串数组 编辑:程序博客网 时间:2024/04/30 10:55
int GraphList::GetFirstNeighbor(const int v)
{
if(v==-1)
return -1;
Edge *p=Head[v].adjacent;
if(p!=NULL)
return p->VerAdj;
else
return -1;
}
int GraphList::GetNextNeighbor(const int v1,const int v2)
{
if(v1!=-1&&v2!=-1)
{
Edge *p=Head[v1].adjacent;
while(p->VerAdj!=v2&&p!=NULL)
p=p->link;
if(p==NULL) return -1;
p=p->link;
if(p==NULL) return -1;
return p->VerAdj;
}
return -1;
}
void GraphList::RDFS(const int v,int *visited)
{
cout<<v<<" ";
visited[v]=1;
int w=GetFirstNeighbor(v);
while(w!=-1)
{
if(!visited[w])
RDFS(w,visited);
w=GetNextNeighbor(v,w);
}
}
void GraphList::DepthFirstSearch()
{
int *visited=new int[graphSize];
for(int k=0;k<graphSize;k++)
visited[k]=0;
RDFS(0,visited);
delete[] visited;
}
{
if(v==-1)
return -1;
Edge *p=Head[v].adjacent;
if(p!=NULL)
return p->VerAdj;
else
return -1;
}
int GraphList::GetNextNeighbor(const int v1,const int v2)
{
if(v1!=-1&&v2!=-1)
{
Edge *p=Head[v1].adjacent;
while(p->VerAdj!=v2&&p!=NULL)
p=p->link;
if(p==NULL) return -1;
p=p->link;
if(p==NULL) return -1;
return p->VerAdj;
}
return -1;
}
void GraphList::RDFS(const int v,int *visited)
{
cout<<v<<" ";
visited[v]=1;
int w=GetFirstNeighbor(v);
while(w!=-1)
{
if(!visited[w])
RDFS(w,visited);
w=GetNextNeighbor(v,w);
}
}
void GraphList::DepthFirstSearch()
{
int *visited=new int[graphSize];
for(int k=0;k<graphSize;k++)
visited[k]=0;
RDFS(0,visited);
delete[] visited;
}
- 图的深度优先遍历----递归
- 图的遍历,非递归版本,深度优先遍历
- 图的深度优先遍历(递归与非递归算法)和广度优先遍历
- 深度优先遍历算法的非递归
- 树的非递归深度优先遍历
- 深度优先遍历的非递归
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历、图的深度优先和广度优先遍历
- 二叉树的深度优先遍历、广度优先遍历和非递归遍历、图的深度优先和广度优先遍历
- 无向图的深度优先遍历和广度优先遍历(递归)
- 【数据结构】邻接矩阵表示法的图的深度广度优先遍历递归和非递归遍历
- 【数据结构】邻接矩阵表示法的图的深度广度优先遍历递归和非递归遍历
- 无向图的邻接矩阵,深度优先遍历和广度优先遍历的递归与非递归算法
- 无向图的邻接矩阵,深度优先遍历广度优先遍历的递归与非递归算法
- 二叉树的深度优先遍历(递归、非递归),广度优先遍历(递归)
- 非递归深度优先遍历
- php深度优先递归遍历
- 图的深度优先遍历
- 图的深度优先遍历
- 搭建Windows下基于Eclipse的PHP开发环境
- 第十六周任务-项目1-输出字母A的个数
- 项目4:指来指去
- 社区里的志愿者与专业人员
- oracle 11g R2中exp不能导出空表的解决方法
- 图的深度优先遍历----递归
- 第十六周项目1 小心地放开玩字符串/字符数组(2.2)
- Oracle中Union与Union All的区别
- UIActionSheet not show
- .NET sql查询返回DataTable数据量大的时候有严重的效率问题
- 使用RMAN恢复数据库
- Sqlserver:sqlserver2005在安装过程中,提示“ [Microsoft][SQL Native Client]客户端不支持加密”的问题解决
- 选择对10个数排序,函数调用。
- 建造者模式