freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

模擬一個全國城市間的交通咨詢程序_數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告-資料下載頁

2025-08-18 09:47本頁面

【導(dǎo)讀】開始時間和到達時間時均需輸入兩個整型數(shù)據(jù);在選擇功能時,應(yīng)輸入與所選功能對應(yīng)的一個整型數(shù)據(jù)。程序的功能包括:提供對城市信息的編輯,提供列車時刻表和飛機航班表的編輯,在本程序中,我們一共劃分了三個模塊。編輯,以及顯示交通系統(tǒng)和整體的界面由李明月完成。航班班次以及列車車次添加刪除。以及數(shù)據(jù)結(jié)構(gòu)的初步實現(xiàn)由呂竹青完成。對于最少時間,最少花費以及最少的中轉(zhuǎn)次數(shù)。這三個函數(shù)的實現(xiàn)由劉璐璐進行完成。

  

【正文】 ocateVertex(G,a[k].vt)得到起始結(jié)點的位置 i j=LocateVertex(G,a[k].vh)。 // 調(diào)用函數(shù) LocateVertex(G,a[k].vh)得到起始結(jié)點的位置 j q=Gvertices[i].trainfirstarc。 m=0。 while(q!=NULL) { if(qadjvex==j) //弧 q 中的鄰接頂 9 點與 j 相等 { t=q+1。 //將數(shù)組a[i] 中的內(nèi)容都復(fù)制到弧 q 中 q[t].number=a[k].co。 q[t].expenditure=a[k].mo。 q[t].begintime[0]=a[k].bt[0]。 q[t].begintime[1]=a[k].bt[1]。 q[t].arrivetime[0]=a[k].at[0]。 q[t].arrivetime[1]=a[k].at[1]。 q=t。 m=1。 break。 } q=qnextarc。 } if(m==0) { p=(ArcNode*)malloc(sizeof(ArcNode))。 //開辟一個弧結(jié)點 padjvex=j。 //將數(shù)組 a[i]中的內(nèi)容都復(fù)制到新的弧結(jié)點中 p[0].number=a[k].co。 p[0].expenditure=a[k].mo。 p[0].begintime[0]=a[k].bt[0]。 p[0].begintime[1]=a[k].bt[1]。 p[0].arrivetime[0]=a[k].at[0]。 p[0].arrivetime[1]=a[k].at[1]。 p=0。 pnextarc=Gvertices[i].trainfirstarc。 Gvertices[i].trainfirstarc=p。 //將弧結(jié)點連接到適當(dāng)?shù)奈恢弥腥? arc_num++。 } k++。 } Gtrainarum=arc_num。 } int save(ALGraph *G)//保存城市交通系統(tǒng)到相應(yīng)的文檔 {int i,j,k,t。 ArcNode *q。 FILE *fp。 j=0。 while(jGvexnum) 10 {strcpy(city[j],Gvertices[j].cityname)。 j++。 } i=0。 if((fp=fopen(,wb))==NULL) printf(\n 錯誤 ,無法打開文件 !\n)。 while(iGvexnum) {fprintf(fp,%10s,city[i])。 i++。 } fclose(fp)。 k=0。 for(i=0。iGvexnum。i++) {q=Gvertices[i].planefirstarc。 while(q!=NULL) {for(t=0。t=q。t++) {strcpy(a[k].vt,Gvertices[i].cityname)。 strcpy(a[k].vh,Gvertices[qadjvex].cityname)。 a[k].co=q[t].number。 a[k].mo=q[t].expenditure。 a[k].bt[0]=q[t].begintime[0]。 a[k].bt[1]=q[t].begintime[1]。 a[k].at[0]=q[t].arrivetime[0]。 a[k].at[1]=q[t].arrivetime[1]。 k++。 } q=qnextarc。 } } if((fp=fopen(,wb))==NULL) {printf(\n 無法打開文件 !\n)。 return 0。 } i=0。 fprintf(fp,%d,k)。 while(ik) {if(fwrite(amp。a[i],sizeof(struct arc),1,fp)!=1) printf(\n文件寫入錯誤 !\n)。 i++。 } fclose(fp)。 k=0。 for(i=0。iGvexnum。i++) {q=Gvertices[i].trainfirstarc。 while(q!=NULL) {for(t=0。t=q。t++) {strcpy(a[k].vt,Gvertices[i].cityname)。 strcpy(a[k].vh,Gvertices[qadjvex].cityname)。 a[k].co=q[t].number。 a[k].mo=q[t].expenditure。 a[k].bt[0]=q[t].begintime[0]。 a[k].bt[1]=q[t].begintime[1]。 a[k].at[0]=q[t].arrivetime[0]。 a[k].at[1]=q[t].arrivetime[1]。 11 k++。 } q=qnextarc。 } } if((fp=fopen(,wb))==NULL) {printf(\n 無法打開文件 !\n)。 return 0。 } i=0。 fprintf(fp,%d,k)。 while(ik) {if(fwrite(amp。a[i],sizeof(struct arc),1,fp)!=1) printf(\n 文件寫入錯誤 !\n)。 i++。 } fclose(fp)。 return 1。 } void CityEdit(ALGraph *G)//城市編輯項目選擇界面 {int i。system(cls)。 printf(\n請選擇城市編輯項目 :\n)。 printf( \ \n)。 printf(選擇 :)。 scanf(%d,amp。i)。 getchar()。system(cls)。 if(i==1) EnterVertex(G)。 if(i==2) DeleteVertex(G)。 } void EnterVertex(ALGraph *G)//增加城市 {char v[10],c。 int i。system(cls)。 printf(\n請輸入新增城市的名稱 :)。 gets(v)。 i=LocateVertex(G,v)。 if(i=0amp。amp。iGvexnum) {printf(\n 錯誤!此城市已存在 \n)。 return。 } else {printf(\n 確認(rèn) ?(Y/N))。 c=getchar()。 //getchar()。 if(c==39。Y39。||c==39。y39。) {i=Gvexnum。 strcpy(Gvertices[i].cityname,v)。 Gvertices[i].planefirstarc=NULL。 Gvertices[i].trainfirstarc=NULL。 Gvexnum=i+1。 save(G)。 } else return。 } } void DeleteVertex(ALGraph *G) // 刪除城市 12 {int i,j,k,n。 char v[10],c。 ArcNode *p,*q,*m。system(cls)。 printf(\n請輸入刪除的城市 :)。 //提示 輸入刪除城市名 gets(v)。 printf(\n確認(rèn) ?(Y/N))。 //提示 是否確定要刪除( Y/N) c=getchar()。 getchar()。 if(c==39。Y39。||c==39。y39。) {n=0。 //0 是記數(shù)標(biāo)志,控制循環(huán)次數(shù) while(nGvexnumamp。amp。strcmp(Gvertices[n].cityname,v)!=0) //n圖 G 表頭接點總個數(shù) amp。amp。圖 G 的存儲城市名與 v 不同 ,G 表頭結(jié)點總個數(shù)比實際大 1 n++。 //記數(shù)值 n+1 if(n==Gvexnum) //n==圖 G表頭結(jié)點總個數(shù) printf(\n 錯誤!無法找到此城市 !\n)。 //提示 無法找到此城市 else {i=LocateVertex(G,v)。 //利用 G函數(shù)找到此城市名所處在 G 中位置 p=Gvertices[i].planefirstarc。 while(p!=NULL) {q=p。 p=pnextarc。 free(q)。 //刪除從此結(jié)點出發(fā)的所有航班弧 } p=Gvertices[i].trainfirstarc。 while(p!=NULL) {q=p。 p=pnextarc。 free(q)。 //刪除從此結(jié)點出發(fā)的所有列車弧 } for(j=i。jGvexnum1。j++) {strcpy(Gvertices[j].cityname,Gvertices[j+1].cityname)。 //將 G 第 j 個結(jié)點的信息依前移 1位 Gvertices[j].planefirstarc=Gvertices[j+1].planefirstarc。 Gvertices[j].trainfirstarc=Gvertices[j+1].trainfirstarc。 } Gvertices[j].planefirstarc=NULL。 //將 G第j 個結(jié)點的信息置空 Gvertices[j].trainfirstarc=NULL。 for(k=0。kGvexnum1。k++) //以下是刪除所有指向此結(jié)點的航班弧 {p=Gvertices[k].planefirstarc。 while(p!=NULL) {if(padjvexi) {padjvex=padjvex1。 q=p。 p=pnextarc。 //p 指向下一條飛機弧 } 13 else if(padjvex==i) //該弧指向的頂點位置(padjvex )== i {if(p==Gvertices[k].planefirstarc) //p 指向圖 G 中 k 結(jié)點的第一條飛機弧 {m=p。 Gvertices[k].planefirstarc=pnextarc。 //將圖 G 中 k 結(jié)點的第二條飛機弧改為第一弧 p=pnextarc。 //p 指向下一條飛機弧 free(m)。 //釋放( m) } else {qnextarc=pnextarc。 //將 p的下一條弧賦給 q 的下一條弧 m=p。 p=pnextarc。 //p 指向下一條飛機弧 free(q)。 //釋放 (q) } } else {q=p。 p=pnextarc。 //p 指向下一條飛機弧 } } } for(k=0。kGvexnum1。k++) ///*以下是 刪除所有指向此結(jié)點的列車弧 */
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1