資源簡介
用C++ 語言編寫 用Floyd算法求有向圖中任意兩點間的最短路徑 由用戶輸入頂點和有向邊的信息
代碼片段和文件信息
#include
#include
#include
#include
#define?MaxSize?30
#define?Affinity?200
using?namespace?std;??
class?AdjGraph
{
public:char?*vexs;
???int?**arcs;
???int?*visited;int?**adj;int?**path;
???int?vexnumarcnum;
???AdjGraph()
???{
???vexnum=arcnum=0;
???vexs=NULL;visited=NULL;arcs=NULL;adj=NULL;path=NULL;
???}
???AdjGraph(int?vint?a)
???{
???int?ij;
???vexnum=v;arcnum=a;
???vexs=new?char[vexnum];visited=new?int[vexnum];
???arcs=(int?**)new?int*[vexnum];
???for(i=0;i ???{
???arcs[i]=new?int[vexnum];
???}
???for(i=0;i ???{
???visited[i]=0;vexs[i]=‘\0‘;
???for(j=0;j ???{
???arcs[i][j]=Affinity;
???}
???}
????adj=(int?**)new?int*[vexnum];
???for(i=0;i ???{
???adj[i]=new?int[vexnum];
???}
????path=(int?**)new?int*[vexnum];
???for(i=0;i ???{
???path[i]=new?int[vexnum];
???}
???
???}
???~AdjGraph(){}
???int?posvex(char?x)
???{
???int?i=0;
???for(i=0;i ???{
???if(vexs[i]==x)
???break;
???}
???if(i ???{return?i;}
???else
???{return?-1;}
???}
???void?clearVisit()
???{
???int?i;
???for(i=0;i ???{
???visited[i]=0;
???}
???}
???bool?CreateDUG()
???{
???cout<<“請輸入頂點信息:“< ???int?i=0ab;char?lr;
???for(i=0;i ???{cin>>vexs[i];}
???for(i=0;i ???{
???int?w;
???cout<<“輸入第“< ???cin>>l>>r;
???a=posvex(l);b=posvex(r);
??cout<<“請輸入該邊的權(quán)重:“< ???cin>>w;
???arcs[a][b]=w;
???}
???return?true;
???}
???int?FirstAdj(int?i)
???{
???int?j=0;
???while(j ???{j++;}
???if(j ???return?j;
???else
???return?-1;
???}?
???int?SecondAdj(int?iint?k)//頂點下標(biāo)為i的頂點相對于k的下一個頂點k為i的當(dāng)前鄰接頂點二者都是頂點下標(biāo)
???{
???int?j=k+1;
???while(j ???{j++;}
???if(j ???return?j;
???else
???return?-1;
???}
???void?DFS(int?v)
???{
???int?w;visited[v]=1;cout< ???for(w=FirstAdj(v);w>=0;w=SecondAdj(vw))
???{
???if(!visited[w])
???{DFS(w);}
???}
???}
???void?BFS(int?v)
???{
???int?uw;;
?????queue?q1;
???if(!visited[v])
???{
???visited[v]=1;cout< ???q1.push(v);
???while(!q1.empty())
???{
???u=q1.front();
???q1.pop();
???for(w=FirstAdj(v);w>=0;w=SecondAdj(vw))
???{
???if(!visited[w])??
?
- 上一篇:計算機圖形學(xué)實驗之消隱處理
- 下一篇:破圈法構(gòu)造最小生成樹
評論
共有 條評論