資料結構課程設計(九) 公交線路提示

2021-10-07 09:55:07 字數 610 閱讀 6914

要求:

(1)輸入任意兩站點,給出轉車次數最少的乘車路線。

(2)輸入任意兩站點,給出經過站點最少的乘車路線。

(3)加分項:可以輸出全部符合要求的乘車路線

2、演算法描述:

站與站之間的圖直接讀取檔案即可得到。而最小換乘需要一張車與車之間的圖。在原本的站與站的圖里,我在鄰接表裡儲存了車的資訊(可以知道每一條弧是哪一路車上的),可以方便後來構造車與車的圖

最短路徑演算法:

未使用dijkstra演算法而通過改進廣度優先搜尋來實現最短路徑。

因為不論是站與站之間的圖還是車與車之間的圖,每乙個結點之間權值都是1,將其聯想到廣度優先裡一層一層搜尋的思路。因為搜尋完一層才會搜尋下一層,所以最先搜尋到終點的那一層肯定是最小層數(最少戰點或最少換乘),肯定可以反嚮往上層查詢找出一條最短路徑。

實現方法是運用廣度優先搜尋裡的visited陣列,不用其表示是否訪問過,而用其儲存層數。廣度搜尋中佇列每彈出乙個站點,就搜尋所有和該站點相鄰的結點,如果未訪問,就visited中置為1,表示訪問過,然後進佇列。這裡改進為,visited置為當前層數+1。如果找到了終點,就結束廣度搜尋,並且用棧配合visited陣列一層一層的往上找,最後將全部出棧,得出的就是一條最短路徑。

**:

資料結構課程設計

資料結構課程設計 include define n 30 include include includeusing namespace std struct node typedef node phone,mingzi node hashnumble node hashname int hash1 ...

資料結構課程設計

小明是乙個計算機專業top student 祝賀他畢業了。並準備到銀行參加工作。上班第一天,經理叫他編制乙個實現乙個活期儲蓄處理程式,算作考查。上班第一天,一定要給領導乙個好印象,小明二話沒說,就答應了。現要你是小明了,請完成如下題目功能。儲戶開戶 銷戶 存入 支出活動頻繁,系統設計要求 1 能比較...

資料結構課程設計

一 實訓目的 通過課程設計,學會運用資料結構知識,針對具體應用,自己設計合理資料結構,確定儲存結構,並能設計具體操作演算法,選擇使用具體語言進行實現。掌握c 較複雜程式的組織和設計過程,除錯技巧。學習解決實際問題的能力。題目1.小明是乙個計算機專業top student,祝賀他畢業了。並準備到銀行參...