91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 15KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-05-14
  • 語言: C/C++
  • 標(biāo)簽: ??生成樹??鄰接表??

資源簡介

|利用鄰接矩陣創(chuàng)建圖 |顯示圖的鄰接矩陣 |求各頂點(diǎn)的度 |插入頂點(diǎn) |插入弧 |刪除頂點(diǎn) |刪除弧 |用鄰接矩陣創(chuàng)建鄰接表UDG |顯示圖的鄰接表 |深度優(yōu)先便利序列 |廣度優(yōu)先便利序列 |圖的連通分支 |求最小生成樹 |求任意頂點(diǎn)到其它頂點(diǎn)的最短路徑 |求圖的深度優(yōu)先生成樹 |對生成樹進(jìn)行先序遍歷

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#define?MAX_VERTEX_NUM?20
#define?INFINITY?10000

typedef?struct?ArcCell{
int?adj;
}ArcCellAdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedef?struct{
char?vexs[MAX_VERTEX_NUM];
AdjMatrix?arcs;
int?vexnumarcnum;
}MGraph;

//……………………查詢頂點(diǎn)位置…………………

int?LocateVex(MGraph?Gchar?v){
int?i=0;
while(G.vexs[i]!=v&&i i++;
return?i;
}

//……………………創(chuàng)建圖的鄰接矩陣…………………

MGraph?CreateMGraph(){
MGraph?G;
int?ijk;
int?w;
char?v1v2;
cout<<“請輸入圖的頂點(diǎn)數(shù):“;
cin>>G.vexnum;
cout<<“請輸入圖的弧數(shù):“;
cin>>G.arcnum;
for(i=0;i cout<<“請輸入第“< cin>>G.vexs[i];
}
for(i=0;i for(j=0;j G.arcs[i][j].adj=INFINITY;
for(k=0;k cout<<“請輸入弧“< cin>>v1>>v2>>w;
if(LocateVex(Gv1) i=LocateVex(Gv1);
else{
cout<<“沒有找到此頂點(diǎn)!“< k--;
continue;
}
if(LocateVex(Gv2) j=LocateVex(Gv2);
else{
cout<<“沒有找到此頂點(diǎn)!“< k--;
continue;
}
G.arcs[i][j].adj=w;
G.arcs[j][i]=G.arcs[i][j];
}

return?G;
}

//……………………輸出MGraph…………………

void?PrintMGraph(MGraph?G){
cout<<“-----------------圖的鄰接矩陣---------------“< int?ij;
for(i=0;i cout<<“ “< cout< for(?i=0;i cout< for(?j=0;j if(G.arcs[i][j].adj!=INFINITY)
cout< else
cout<<“∞“<<“ “;
}
cout< }
cout<<“--------------------------------------------“<}

//……………………求各個頂點(diǎn)的度…………………

void?Vdu(MGraph?G){ //求各個頂點(diǎn)的度
int?ij;
int?V[20];
for(i=0;i int?count=0;
for(j=0;j if(G.arcs[i][j].adj!=INFINITY)
count++;
V[i]=count;
}
for(i=0;i cout<}

//……………………插入頂點(diǎn)…………………

void?InsertVex(MGraph?&G){
char?v;
int?ij;
cout<<“請輸入你想插入的頂點(diǎn):“;
cin>>v;
i=G.vexnum++;
G.vexs[i]=v;
for(j=0;j G.arcs[i][j].adj=INFINITY;
j=G.vexnum-1;
for(i=0;i G.arcs[i][j].adj=INFINITY;
cout<}

//……………………插入弧…………………

void?InsertArc(MGraph?&G){
char?v1v2;
int?ijw;
cout<<“請輸入你要插入的弧所關(guān)聯(lián)的頂點(diǎn)和權(quán)值:“;
cin>>v1>>v2>>w;
if(LocateVex(Gv1) i=LocateVex(Gv1);
j=LocateVex(Gv2);
G.arcs[i][j].adj=w;
G.arcs[j][i]=G.arcs[i][j];
cout< }else{
cout<<“沒有找到關(guān)聯(lián)的頂點(diǎn)!“< }
}

//……………………刪除頂點(diǎn)…………………

void?DeleteVex(MGraph?&G){
int?ij;
char?v;
cout<<“請輸入你所要刪除的頂點(diǎn):“;
cin>>v;
if(LocateVex(Gv) int?l=LocateVex(Gv);
for(i=l;i G.vexs[i]=G.vexs[i+1];
for(i=l;i for(j=0;j G.arcs[i][j]=G.arcs[i+1][j];
for(i=0;i

評論

共有 條評論