这一篇写一下Dijkstra算法。当初学习数据结构的课件找不到了,就在网上找了两张图片,有一个有权无向图以及迪杰斯特拉算法的原理思想。
以下是C++实现代码:
#include<iostream>
#include<limits.h>
#define MAXVEX 100
using namespace std;
typedef struct
{
int matrix[MAXVEX][MAXVEX];
int numNodes, numEdges;
} Graph;
void CreateGraph(Graph *Gp)
{
int i, j, k, w;
bool isDirected;
cout<<"无向图请输入0,有向图请输入1"<<endl;
cin>>isDirected;
cout<<"请输入顶点数和边数(空格分隔):"<<endl;
cin>>Gp->numNodes>>Gp->numEdges;;
for (i=1;i<=Gp->numNodes;i++)
{
for (j=1;j<=Gp->numNodes;j++)
{
if (i==j)
Gp->matrix[i][j]=0;
else
Gp->ma

本文介绍了一种经典的最短路径算法——Dijkstra算法,并提供了详细的C++实现代码。通过创建无向图并构建邻接矩阵,实现了从指定起点到图中其他各点的最短路径计算。
最低0.47元/天 解锁文章
2107

被折叠的 条评论
为什么被折叠?



