公交路線如何使用資料結構儲存?

時間 2021-06-03 00:28:46

1樓:

以帶時刻表的火車線路查詢為例,介紹圖的設計,不帶時刻表的話會簡單很多

節點結構:包含時間和地點兩個資訊(以及節點/地點型別),比如5:00在地點(經緯度)X,6:00在A車站門口,6:30在火車上B站

節點型別可能包括:任意的座標XY,車站前,火車上某站

連線結構:包含起始節點,終結節點,費用(以及連線型別)

連線型別可能包括:從座標XY到達車站,從車站上車,從車上下車出站,從車站到達座標XY,列車執行從A站到B站(相鄰兩站),列車在A站停車,在車站等待,從A車站到同城B車站,等等

舉例,某人從XY1到車站A乘車次F1到達T1站後,再到同城T2站乘車次F2到達B站,最終到XY2的路徑可能是:

Day1 5:00 XY1

Day1 5:40 A站(從座標XY到達車站)

Day1 7:00 A站(在車站等待)

Day1 7:30 F1車A站(從車站上車)

Day1 7:50 F1車A1站(列車執行)

Day1 7:55 F1車A1站(列車停站)

Day1 8:30 F1車A2站(列車執行)

Day1 8:35 F1車A2站(列車停站)

Day1 9:00 F1車T1站(列車執行)

Day1 9:00 T1站(下車出站)

Day1 9:50 T2站(從T1車站到同城T2車站)

Day1 10:50 T2站(在車站等待)

Day1 11:20 F2車T2站(從車站上車)

Day1 12:50 F2車B1站(列車執行)

Day1 12:55 F2車B1站(列車停站)

Day2 00:00 F2車B2站(列車執行)

Day2 00:15 F2車B2站(列車停站)

Day2 08:50 F2車B站(列車執行)

Day2 09:20 B站(下車出站)

Day2 10:00 XY2(從車站到XY2)

我寫過全國鐵路的程式,抓取過鐵路時刻表,甚至每個車站經緯度都弄下來了,只不過過時了很多

java如何優雅使用棧這個資料結構?

聖魯安德斯 LinkedList 既有棧的 pop,push 方法,又有佇列的 offer,poll 方法,還有deque的 addfirst,addLast,removeFirst,removeLast 方法,還有collection 都有的 add,remove 方法,還有棧和堆的 peek 方...

如何設計資料結構和演算法,計算並儲存六度好友關係?

杜傳贏 這是乙個非常有趣的問題,現實工程中也被人實現較多,其實不是那麼的難 最關鍵的優化點其實是 1.雙向廣搜,把六度直接降為三度,計算量一下就減化非常非常的多了,雖然其實還是指數級的複雜度.2.快取二度 三度好友的結果,用空間換時間 1.能否快速獲取任意兩個使用者的好友關係度數 最大為六 能,假設...

資料結構如何一天速成?

小人物 一天速成的話據我猜測你是為了應付期末考試的吧。簡單來說你都不用按照課本上的目錄來學了。你都想一天速成了你也別想什麼高分了,除非你在想屁吃。如果真的想一天速成的話,那麼對於這種考試的話,最簡單的就是會做題。說的通俗點,把資料結構的考試題整的越多越好,一天內把每個題都搞會了就行,當然這一天你連玩...