//源點到其餘各點的最短路徑
//從源點出發 遍歷鄰接點 每次選擇最小的路徑 作為次長
#include
#include
#include
using
namespace
std;
#define maxsize 256
struct basenode
int tailindex;
int nweight;
basenode * next;
};struct graphnode
char info;
basenode * first;
};class graph
public:
bool init();
void findmin(int nstart);
public:
graphnode m_node[maxsize];
int m_vertsize;
int m_edgesize;
};bool graph::init()
cout
<< "輸入邊數"
<< endl;
cin >> m_edgesize;
for (int i = 1; i <= m_edgesize; i++)
else
t->next = new basenode;
t->next->tailindex = ntail;
t->next->nweight = nweight;}}
return
true;
}struct minpath
int index;
int nlength;
string path;
bool
operator==(int a)
};void graph::findmin(int nstart)
}//從源點開始
vector
selectpoint,hasselected;
selectpoint.push_back(nstart);
while (selectpoint.size() > 0)
else
//遍歷鄰接點 替換最小 路徑
while (t)
}t = t->next;
}int m = -1, n = -1;
//從未選過的點中 選擇路徑最短的點
for (int i = 0; i < allpath.size(); i++)}}
if (n != -1)
selectpoint.push_back(n);
}for (int i = 0; i < allpath.size(); i++)
}int main()
return
0;}
單源點最短路徑
include include include using namespace std 自定義比較大小,負數均視為無窮大,其他大小正常 xbool lessthen float x,float y 長度為len的s陣列是否包含e 包含e,return true bool contain int s,...
單源點最短路徑
單源點最短路徑 雨竹清風 單源最短路徑 是從某乙個源點s出發到圖中的所有的頂點之間的最短路徑。1.單源點最短路徑的變體 1 單終點最短路徑問題 找到從每乙個頂點到終點的最短路徑。可以將圖中的邊全部反向,然後求單源點最短路徑即可。2 單對頂點最短路徑問題 對於圖中的兩個頂點u和v,找到從u到v的最短路...
多源點最短路徑
給出s個起點,給出t個終點,求出所有起點到終點的最短路中的最短的乙個.構建乙個超級源點,與每乙個起點相連,權值為0 構建乙個超級終點,與每乙個終點相連,權值為0。然後求超級源點到超級終點的最短路徑。include includeusing namespace std int first 1010 d...