東北大學印表機管理資料結構設計作業

2021-03-04 05:37:21 字數 1637 閱讀 9627

三、實驗環境

作業系統、除錯軟體名稱、版本號,上機地點,機器台號

作業系統為win7,除錯軟體名稱:microsoft visual studio 2012,上機地點:寢室

四、實驗過程與分析

(1) 描述你在進行實現時,主要的函式或操作內部的主要演算法,分析這個演算法的時、空複雜度,並說明你設計的巧妙之處。

用time來記述元素不間斷轉移(進出佇列)。時間複雜度上,只有乙個while迴圈,所以時間複雜度為o(n),n為總時間。空間複雜度上,總空間使用度等於總的事件數目*事件的大小。

(2) 你在除錯過程中發現了怎樣的問題?又做了怎樣的改進?

沒什麼太大的問題,主要是引數設定出現了問題,對引數設定不太了解,查下網就解決了,還有對棧中資料要及時清空,不然會有程式不間斷執行,占用記憶體。

(3) 你的抽象資料型別的實現是否具有可擴充套件性?

佇列可在引數中實現資料型別上的擴充套件。

五、實驗結果總結

回答以下問題:

(1) 你的測試充分嗎?為什麼?你是怎樣考慮的?

輸出檔名為print,測試arbitrary.run檔案時與arbitrary.out的輸出相同,將引數改為bigfirst.

run時輸出結果與bigfirst.out的輸出結果也相同。

(2) 用一段簡短的**及說明論述你的應用中主要的函式的主要處理部分。

void simulate(string f)

執行結果為:

(3) 為什麼你要選用棧或佇列或字串或陣列等抽象資料型別作為你應用的資料結構?

因為動態陣列可以自動調節大小,這樣可以最大限度的降低空間複雜度。

(4)源程式的大致的執行過程是怎樣的?

請清晰、準確、詳細地回答上面的問題,要求標點符號正確無誤,圖表表示符合規範。你的報告應至少超出一頁的文字描述,注意你描述的文字一定要敘述流暢,具有較好的邏輯性。

六、附錄

(1) 如果你對這個實驗還有其他的解決方案或設想,或對我們的實驗方案有什麼意見,請在此描述。

用多執行緒模擬印表機,同時列印時可以用獲取本地時間的方式來記下列印時間等,這樣可以有效利用各種方面的條件。

(2) 回答思考題

a) 棧和佇列在計算機系統中有哪些應用?寫出你知道的系統中,這兩種抽象資料型別的應用。

停車系統、記憶體呼叫資料或釋放資料、鐵路排程中用到棧、火車票訂購用的是佇列。

b) 在程式呼叫的時侯,需要進行函式的切換,你認為函式在進行切換時系統要做那些工作?

現將要切出來的函式和返回引數出棧,然後將不用的函式和返回引數壓棧。

(3)選作:查詢以下內容的有關知識

a)函式呼叫、返回時,系統對棧進行的操作。

1、指令指標的位址加1,指向函式呼叫後的下一條指令。這個位址會被記入堆疊中,它將作為函式返回時的返回位址。

2、在堆疊中給宣告的返回值建立空間。

3、當前堆疊的棧頂被記錄下來並儲存在乙個叫做棧幀的特殊指標中,從記錄開始到函式執行結束加入堆疊的所有資料都被視為函式的區域性變數。

4、函式將所有形參都放入了堆疊中。

5、開始執行指令指標中的指令。

6、區域性變數被壓入堆疊中。

7、當函式返回時,返回值放入步驟2所建立的記憶體中,隨後堆疊指標指向棧幀指標,從而依次彈出被調函式的所有區域性變數並將返回值彈出堆疊,賦值給函式呼叫本身的值,返回函式返回位址,繼續執行下面程式。

東北大學2023年資料結構試題

1 20分 簡要回答下列問題 注意 請將答案寫在答題紙上,並註明題號 3分 記憶體中一片連續空間 不妨假設位址從1到m 提供給兩個棧s1和s2使用,怎樣分配這部分儲存空間,使得對任乙個棧,僅當這部分空間全滿時才發生上溢。5分 假設字元a,b,c,d,e,f的使用頻度分別是0.07,0.09,0.12...

東北大學2023年資料結構試題

1 20分 簡要回答下列問題 注意 請將答案寫在答題紙上,並註明題號 3分 記憶體中一片連續空間 不妨假設位址從1到m 提供給兩個棧s1和s2使用,怎樣分配這部分儲存空間,使得對任乙個棧,僅當這部分空間全滿時才發生上溢。5分 假設字元a,b,c,d,e,f的使用頻度分別是0.07,0.09,0.12...

東北大學生產運作管理複習整理

第一章緒論 1 社會組織的基本職能 生產運作 財物和營銷。生產運作 是一切社會組織將他的輸入轉化 增值為輸出的過程。財物就是為社會組織籌措資金並合理地運用資金。營銷就是要發現與發掘顧客的需求,讓顧客了解公司的產品和服務,並將這些產品和服務送到顧客手中。2 社會組織的三項基本活動 輸入 轉化和輸出。3...