為了防止以後可能需要又找不到
還是上傳一下吧
內容注釋寫的比較清楚了
#include
#include
#include
#include
#define max_vex 100
#define inf 100000
#define error -1
#define ok 1
#define true 1
#define flase 0
using namespace std;
typedef
int status;
typedef
struct
mgraph ;
//圖的結構定義
intlocate
(mgraph g,
char c)
;//定位點
mgraph create()
;//建立無向圖
void
print
(mgraph g)
;//列印鄰接矩陣
void
browse
(mgraph g)
;//列印全部景點資訊
void
shortestd
(mgraph g)
;//檢視瀏覽路線
void
shortestf
(mgraph g)
;//檢視瀏覽路線
void
seeabout
(mgraph g)
;//景點資訊查詢
void
change
(mgraph &g)
;//更改圖的資訊
void
add(mgraph &g)
;//增加景點及邊
void
mi(mgraph &g)
;//減少景點及邊
void
reb(mgraph &g)
;//重建圖
void
allpath
(mgraph g)
;//查詢一條一次遍歷所有景點的可行路徑
intlocate
(mgraph g,
char c)
return-1
;}mgraph create()
;int weigh;
printf
("請輸入景點個數,邊數:");
scanf
("%d %d"
,&g.vexnum,
&g.arcnum)
;getchar()
;while
(ifor(i=
0;iprintf
("請輸入每條邊依附的景點代號和距離:\n");
//輸入各點間關係
for(i=
0;i)//測試使用初始圖
/* g.vexnum=5;
g.arcnum=7;
char str1[5][100]=;
char str2[5][100]=;
char str3[5][100]=;
for(int i;i<5;i++)
int a[5][5]=,,,,};
for(int i=0;i<5;i++)
}*/return g;
}void
browse
(mgraph g)
}void
shortestd
(mgraph g)
int final[max_vex]
=,d[max_vex]=;
int p[max_vex]
;for
(i=0
;i) d[v]=0
;//初始化
final[v]=1
;for
(i=0
;i} final[n]=1
;for
(j=0
;j}for
(i=0
; i)while
( k!= v)
;printf
("%s\n"
,g.name[k]);
}}void
shortestf
(mgraph g)
for(i=
0;ifor(i=
0;i}}
k=v1;
printf
("從%s到%s的最短距離為%d\n路徑為"
,g.name[v1]
,g.name[v2]
,d[v1]
[v2]);
printf
("路徑為:");
while
(k!=v2)
printf
("%s\n"
,g.name[v2]);
}void
seeabout
(mgraph g)
void
add(mgraph &g)
;int i=p,j,k;
char ch1[
100]
,ch2[
100]
;scanf
("%d %d"
,&n,
&m);
g.vexnum+
=n; g.arcnum+
=m;getchar()
;while
(ifor(i=
0;i)for
(i=p;i<=g.vexnum;i++)}
if(m==0)
return
;printf
("請輸入新增每條邊依附的景點代號和距離:\n");
//輸入各點間關係
for(i=q;i)print
(g);
}void
mi(mgraph &g)
;int i,j,k,v[max_vex]
;char ch1[
100]
,ch2[
100]
;scanf
("%d %d"
,&n,
&m);
getchar()
;printf
("請輸入減少的景點代號:");
for(i=
0;i)for
(t=0
;tfor(t=
0;t} g.vexnum-
=n;
g.arcnum-
=m;if
(m!=0)
}print
(g);
}void
reb(mgraph &g)
;int weigh;
printf
("請輸入景點個數,邊數:");
scanf
("%d %d"
,&g.vexnum,
&g.arcnum)
;getchar()
;while
(ifor(i=
0;iprintf
("請輸入每條邊依附的景點代號和距離:\n");
//輸入各點間關係
for(i=
0;i)print
(g);
}void
change
(mgraph &g)
}void
allpath
(mgraph g)
,a[100
],front,rear,i,j,p;
printf
("\n請輸入從哪個景點代號開始:");
scanf
("%s"
,ch1)
; front=rear=0;
i=locate
(g,ch1)
; a[rear++
]=i;
flag[i]=1
;while
(rear>front)}}
printf
("\n");
}void
print
(mgraph g)
printf
("\n");
}}intmain()
}return0;
}
資料結構課設
10 多種基本內排序方法的實現 問題描述 設計乙個合成的排序程式。可供排序的方法是 插入排序 快速排序 歸併排序 堆排序。要求程式具有 1 顯示排序結果.2 提供最好和最壞情況下對比計時的功能。3 提供在不同陣列元素的個數情況 當n分別等於100,1000,5000,20000時 下各種排序演算法的...
資料結構課設框架
標頭檔案上界 include include include include include include using namespace std define true 1 define false 0 標頭檔案下界 結構體上界 食物 typedef struct food food,ptr f...
本人的資料結構課設
include include include include using namespace std define max size 100 typedef struct customer registcust reg,l cust reg typedef struct houbu nodehob...