




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、習題八 圖編程。有向圖如下,請按深度優先和廣度優先兩種方式設計 c 語言的遍歷函數,程序輸出遍歷圖所得的頂點序列。功能要求如下:(1)輸入并生成一個圖;(2)深度優先遍歷;(3)廣度優先遍歷;char letter;/頂點數據域EDGE *out;/指向邊表的指針NODE;void graphinput(NODE *,);/輸入并生成一個圖pop(*,&,);/出棧函數push(*,); /入棧、入隊函數void DFS(NODE *,);/深度優先遍歷void BFS(NODE *,);/廣度優先遍歷main (void)NODE nistMaxLen;i,n=0;coutn;graphin
2、put(nist,n);coutendl深度優先遍歷結果:endl;Dist,n);for (i=0;in;i+)/清除標記,為廣度優先遍歷做準備nisti.mark=false;coutendl廣度優先遍歷結果:endl;Bist,n);return (0);void graphinput (NODE *nist,n)i,j,m;EDGE *q,*p;for(i=0;in;i+)/以下輸入頂點數據cout輸入頂點i+1nisti.letter;nisti.mark=false;/設置標志初始為falsenisti.out=NULL;/邊表初始置空;for(i=0;in;i+)/以下設置頂點的
3、邊表cout輸入第i+1m;if(m)nisti.out=(EDGE *)malloc(sizeof(EDGE);coutt 輸入第i+1個頂點的第1nisti.out-no;/與第 i 個頂點相鄰的圖頂點nisti.out-link=NULL;nisti.out-mark=false;p=nisti.out;for(j=1;jm;j+)q=(EDGE *)malloc(sizeof(EDGE);coutt 輸入第i+1個頂點的第j+1q-no;q-link=NULL;q-mark=false;p-link=q;p=q;pop (*stack,&i,top)if (top-1)i=stackt
4、op;top-;return(top);push (*stack,i,top)if (topMaxLen)top+;stacktop=i-1;return(top);void DFS (NODE *nist,n)i,k,top=-1,p;bool notfinished;stackMaxLen;EDGE *nextMaxLen;/nexti是每個頂點邊表要檢查的下一條邊for (i=0;in;i+)nexti=nisti.out;/nexti初始化指向各頂點邊表第一條邊for (k=0;kn;k+)/搜索頂點集合中未被的頂點 k,并從此出發遍歷該頂點生成if (nistk.mark=false
5、) /此頂點未i=k;coutnisti.letter ; /此頂點nisti.mark=true;/該頂點已標記notfinished=true;while (notfinished)/從此出發遍歷該頂點的生成while (nexti=NULL) /如果邊表空則可以回溯頂點if (top=-1)/若棧空則該頂點生成遍歷結束跳出循環notfinished=false;coutno;/指向邊的另一端鄰接頂點 pp-=1;/因為頂點從 1 開始而數組下標從 0開始if (nistp.mark=false)/順此頂點的深度方向遍歷top=push(stack,i,top);/當前頂點的前趨進棧nex
6、ti-mark=true;/前趨邊過標記coutnistp.letterlink;/指向頂點 i 邊表的下一節點(邊)i=p;/更換到鄰接頂點 p 的邊表else nexti=nexti-link; /此頂點已經標記過,更換邊;void BFS (NODE *nist,n)i,head,rear,queenMaxLen;for (i=1;i=n;i+)if (nisti-1.mark=false)head=rear=-1;rear=push(queen,i,rear);while (headrear)head+;/ 查看隊列中下一個頂點coutnistqueenhead.letterno)-1.mark=false)/未被就入隊rear=push(queen,temp-no,rear);nist(temp-n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冠狀動脈造影及支架植入術
- 2-6邏輯運算的公式
- 原發性肝癌患者護理查房 2
- 上海市浦東新區浦東2025年招生伯樂馬模擬考試(三)生物試題含解析
- 山西財經大學華商學院《中外設計史》2023-2024學年第二學期期末試卷
- 上海海關學院《數理統計理論與方法》2023-2024學年第一學期期末試卷
- 新疆伊寧市第七中學重點達標名校2025年高中畢業班零診模擬考試英語試題含答案
- 山西警官職業學院《藥物分離工程》2023-2024學年第一學期期末試卷
- 九江理工職業學院《影視專業英語》2023-2024學年第一學期期末試卷
- 南京師范大學泰州學院《電氣安全》2023-2024學年第二學期期末試卷
- 敦煌的藝術-知到答案、智慧樹答案
- 2024糖尿病酮癥酸中毒診斷和治療課件
- 妊娠期糖尿病產后護理
- 老撾萬象鉀礦百萬噸級規模氯化鉀開發項目可行性分析研究的開題報告
- 編輯打印新課標高考英語詞匯表3500詞
- 2023年湖南省煙草專賣局(公司)真題
- 22G101基礎平法識圖與鋼筋計算
- 2024年專升本考試-專升本考試(機械設計基礎)筆試歷年真題薈萃含答案
- 對中標候選人的異議書
- 2024年北京市自來水集團長辛店分公司招聘筆試參考題庫含答案解析
- -醫院感染預防與控制標準操作規程SOP第2版
評論
0/150
提交評論