project1
火車車廂重排排程
姓名 饒
姓名 蘇
姓名 盧
姓名 彭
【題目要求】
問題描述:
一列火車要將n節車廂分別送往n個車站。車站按1~n的次序編號,火車按照n, n-1, … , 1的編號次序經過車站假設車廂的標號就是其目的地車站的編號。
題目要求:
給定乙個任意的車廂排列次序。重新排列車廂,使其按照從1到n的次序排序。給出排程的詳細步驟。規定重排排程時車廂只能從入軌到緩衝鐵軌,或者從緩衝鐵軌到出軌。如圖1所示。
【資料結構與演算法】
資料結構:棧
演算法:接收一組由n個數組成的資料,按倒序對資料進行處理。
設定乙個參照值,參照值代表下乙個要過去的車廂編號。下乙個過去的車廂可能在入軌佇列中,也可能在緩衝鐵軌中。若參照值與入軌佇列隊頭或緩衝鐵軌的頂部的車廂編號相等,則將該車廂出軌,並將參照值加一。
若車廂編號不等於參照值,則將其放進緩衝鐵軌中。所有的緩衝鐵軌用棧來表示,棧儲存在乙個vector容器中,從0開始計數。從第0條緩衝鐵軌開始,遍歷所有的棧頂元素,若棧頂元素大於該車廂編號,便將該車廂壓棧,否則檢查下乙個棧。當所有棧頂都遍歷過但沒有符合條件的棧時,新開乙個棧,將該車廂壓棧(相當於現實中有多條緩衝鐵軌,需要用到多少條就申請多少條)。每次參照值變化,就要對比入軌佇列隊頭和遍歷所有棧的棧頂。直到所有車廂成功出軌。
【測試資料、結果及分析】
以n = 5為例:
①倒序排列。輸入:5 4 3 2 1;輸出如圖2-1所示。
②順序排列。輸入:1 2 3 4 5;輸出如圖2-2所示。
③隨機排列1。輸入:5 3 4 1 2;輸出如圖2-3所示。
④隨機排列2。輸入:4 5 2 1 3;輸出如圖2-4所示。
⑤隨機排列3。輸入:1 4 3 2 5;輸出如圖2-5所示。
以n = 10為例:
隨機排列。輸入:6 8 1 4 10 5 7 9 3 2;輸出如圖2-6所示。
以n = 100為例:
隨機排列。輸入:18, 38, 39, 4, 21, 6, 2, 7, 9, 10, 13, 14, 3, 17, 19, 1, 23, 24, 25,8,16, 26, 27, 68, 29, 30, 31, 81, 100, 32, 86, 33, 35, 5, 37, 28, 40, 41, 42, 93, 43, 15, 44, 36, 45, 46, 47, 48, 49, 34, 50, 55, 51, 11, 12, 52, 53, 56, 60,57, 59, 61, 62, 67, 96, 98, 99, 69, 70, 71, 72, 74, 75, 95, 76, 58, 77, 79, 73, 80, 82, 83,97, 84, 54, 85, 78, 87, 88, 22, 89, 63, 64, 65, 66, 90, 91, 92, 94, 20;輸出如圖2-7所示。
【專案總結】
本次專案通過對火車排程這一實際問題的分析與設計,加深了小組成員對棧的認識與了解:棧是限定僅在表頭進行插入和刪除操作的線性表。它按照先進後出的原則儲存資料,先進入的資料被壓入棧底,最後的資料在棧頂,需要讀資料的時候從棧頂開始彈出資料(最後乙個資料被第乙個讀出來)。
解決實際問題的演算法要具有以下的特徵才能有效的完成設計要求:(1)有窮性。演算法在執行有限步後必須終止。(2)確定性。演算法的每乙個步驟必須有確切的定義。(3)可行性。滿足實際問題的需求。
在演算法設計的整個過程中,小組成員一共提出了兩個模型。為排除極端資料對演算法的影響,小組成員不斷測試程式並修復演算法中的不足之處。為適應實際問題的操作,小組成員不斷測試程式並改進演算法。
在小組實踐過程中,需要發揮小組各成員的積極性和能動性,同時要發揚團隊協作精神。
演算法與資料結構實驗題 3 1 火車
實驗任務 tonyy 等火車無聊的時候,會去觀察火車的排列,有一天他思考這麼乙個問 題,火車總站的火車只能進站,要出站的話只能先出最後進站的那輛車,那麼知 道火車的進站順序,能不能把它的出站順序調整成火車站想要的呢?資料輸入 輸入第一行為乙個正整數 n 表示火車輛數 編號 1 n 1 n 9 然後為...
合作式排程器實驗
在安富萊stm32 v5開發板系統篇手冊中,對簡單的排程器進行介紹。由於最近在學習使用uc os,對任務的排程比較感興趣,為此參照該資料進行了實驗,驗證文章中的觀點。以下是合作式排程器的特性,與最常見的前後台程式有很大相似。1 合作式排程器提供了一種單任務的的系統結構 操作 2 在特定的時刻被排程執...
資料結構實驗
資料結構實驗 寫乙個學生管理系統 如下 define overflow 1 define ok 1 define error 1 define maxsize 6 define increment 10 include include include include typedef int stat...