社区
数据结构与算法
帖子详情
图DFS的非递归算法 生成树的算法
chenxi1987
2003-09-29 10:06:06
帮帮我啊
...全文
314
2
打赏
收藏
图DFS的非递归算法 生成树的算法
帮帮我啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stephen85
2003-11-07
打赏
举报
回复
Prim Algorithm:
#include "iostream.h"
#define VERTEX 20
#define INFINITY -1
typedef int VRType ;
typedef int VertexType;
typedef int InfoType;
enum Graphkind {DG,DN,UDG,UDN};
typedef struct ArcCell
{
VRType adj; //顶点关系类型,对无权图,用0、1表示是否相邻,对带权图,表示权值类型
InfoType *info; //该弧相关信息的指针
}ArcCell,AdjMatrix[VERTEX][VERTEX];
typedef struct
{
VertexType vexs[VERTEX]; //顶点向量
AdjMatrix arcs; //邻接矩阵
int vexnum,arcnum; //图的当前顶点数和弧数
Graphkind kind; //图的种类标志
}MGraph;
typedef struct //记录从顶点集U到V-U的代价最小的边的辅助数组定义
{
VertexType adjvex;
VRType lowcost;
}Closedge;
/////////////////////////////////////////////
void MiniSpanTree_PRTM(MGraph G,VertexType u)
//用普西姆算法在无向网中从第u个顶点出发构造网G的最小生成树T,输出T的各条边
{
Closedge closedge[VERTEX];
int i,j,k,temp;
temp=LocateVex(G,u); //确定u在图中的序号,自己完成.
for(i=0;i<G.vexnum;i++)
if(i!=temp)
{
closedge[i].adjvex=u;
closedge[i].lowcost=G.arcs[temp][i].adj;
}
closedge[temp].lowcost=0;
for(i=1;i<G.vexnum;++i)
{
int min=INFINITY;
for(j=0;j<G.vexnum;j++)
{
if(closedge[j].lowcost>0)
{
if(closedge[j].lowcost<min||min==INFINITY)
{
k=j;
min=closedge[j].lowcost;
}
}
}
cout<<closedge[k].adjvex<<" "<<G.vexs[k]<<endl;
closedge[k].lowcost=0;
for(j=0;j<G.vexnum;j++)
if(G.arcs[k][j].adj>0&&(G.arcs[k][j].adj<closedge[j].lowcost)||(closedge[j].lowcost==INFINITY))
{
closedge[j].adjvex=G.vexs[k];
closedge[j].lowcost=G.arcs[k][j].adj;
}
}
}
CD2006
2003-11-05
打赏
举报
回复
非递归就是自己做工作栈,用循环做,
生成树:
1: Kruskal Algorithm:
suppose T is the final set.
伪代码:
T= 空集;
while(T 中边数<n)
{
从E取weight最小的边(p,q);
E-={(p,q)};
if (p,q) 加入T不成环,
T+={(p,q)};
}
2: Prim Algorithm.
...
数据结构邻接矩阵
DFS
非递归
算法
以及PRIM
算法
最小
生成树
用邻接矩阵存储的
图
,深度优先遍历,
非递归
算法
~ 和PRIM
算法
的最小
生成树
图
的遍历和
生成树
求解实现课程设计
要求: 1. 先任意创建一个
图
; 2.
图
的
DFS
,BFS的递归和
非递归
算法
的实现 3. 最小
生成树
(两个
算法
)的实现,求连通分量的实现 4. 要求用邻接矩阵、邻接表、十字链表等多种结构存储实现
图
的遍历和
生成树
求解实现 数据结构课程设计
数据结构的一次课程设计 有源代码、运行截
图
和exe生成程序!
数据结构实验报告-
图
-基于邻接表求连通无向
图
的
DFS
与BFS
生成树
-实验内容与要求.docx
实验内容及要求: 用字符文件提供数据建立连通无向
图
邻接表存储结构。编写程序,实现
DFS
与BFS
算法
,输出
DFS
与BFS
生成树
的每条边。(边用顶点序号组成的无序偶表示) 实验目的:掌握
图
的邻接表存储结构;掌握
图
的遍历
算法
与
生成树
。
图
的遍历和
生成树
求解实现
1、
图
的
DFS
,BFS的递归和
非递归
算法
的实现 2、最小
生成树
(两个
算法
)的实现 3、求连通分量的实现
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章