DS部落格作業03 棧和佇列

2022-04-12 20:07:43 字數 1831 閱讀 3559

在createstack函式中為結構體和陣列分配好記憶體,push函式先判斷堆疊是否滿,然後根據tag對相應堆疊進行輸入

pop函式先根據tag判斷對那個堆疊操作,然後再進行判斷是否為空,不空就出棧。

q1:輸出搞錯了,滿是沒有輸出tag沒有輸出

q2:沒賦值直接用mystack->maxsize

假設在週末舞會上,男士和女士們分別進入舞廳,各自排成一隊。跳舞開始,依次從男隊和女隊隊頭各出一人配成舞伴,若兩隊初始人數不同,則較長那一隊未配對者等待下一輪舞曲。現要求寫一演算法模擬上述舞伴配對問題。 你需要用佇列操作實現上述演算法。請完成下面5個函式的操作。

男女全部分別入隊,然後先男出隊,後女出隊,直到至少一隊為空。

q1:函式都比較簡單但是多需要細心處理,所以有小錯誤

請編寫程式檢查c語言源程式中下列符號是否配對:/與/、(與)、[與]、。

左括號入棧,右括號就取棧頂配對,根據配對結果輸出。如果最後棧空即為配對成功。

q1:乙個輸出寫錯一直沒發現。

q2:對/和*判斷處理不夠細心,迴圈要移動兩次

排隊「夾塞」是引起大家強烈不滿的行為,但是這種現象時常存在。在銀行的單視窗排隊問題中,假設銀行只有1個視窗提供服務,所有顧客按到達時間排成一條長龍。當視窗空閒時,下一位顧客即去該視窗處理事務。此時如果已知第i位顧客與排在後面的第j位顧客是好朋友,並且願意替朋友辦理事務的話,那麼第i位顧客的事務處理時間就是自己的事務加朋友的事務所耗時間的總和。在這種情況下,顧客的等待時間就可能被影響。假設所有人到達銀行時,若沒有空視窗,都會請求排在最前面的朋友幫忙(包括正在視窗接受服務的朋友);當有不止一位朋友請求某位顧客幫忙時,該顧客會根據自己朋友請求的順序來依次處理事務。試編寫程式模擬這種現象,並計算顧客的平均等待時間。

建乙個結構體,包括名字,到達時間,辦理時間,朋友圈,然後輸入資料建立鍊錶,然後鍊錶第乙個資料入佇列,再遍歷剩下鍊錶節點,如果發現某節點名字在第乙個資料的朋友圈中並且在朋友辦理事務之前到達就入隊,把入隊的節點全部刪除,重複操作,直到鍊錶為空,就意味著處理完畢。

q1:沒有考慮好空閒時間和第乙個客戶不是0分到達的情況

輸入乙個字尾表示式,程式求出表示式值。

錯誤原因:

DS部落格作業03 棧和佇列

本週學習的內容是棧和佇列,相比前一單元的順序表內容,容易了很多,操作上更加簡便。順序表包括順序表和煉表兩塊大內容,順序表的操作主要有建立順序表,查詢順序表中的元素,順序表元素的插入和刪除。鍊錶的主要操作有頭插法建表和尾插法建表,鍊錶的遍歷查詢,有序鍊錶的插入和刪除以及兩個有序鍊錶的合併。而本單元的棧...

DS部落格作業03 棧和佇列

本週學習的棧和佇列,對我來說難點在於棧和佇列的輸出輸入中的棧空和隊空判斷,容易不小心把兩個寫混。在程式設計時,選擇用棧的順序儲存結構空間利用率高,而用鏈式儲存結構可以不用擔心空間的不足或浪費,二者各有優勢,但目前我用順序儲存結構更多。學了棧和佇列,許多問題的解決變得方便了許多,比如括號問題的求解,表...

DS部落格作業03 棧和佇列

6 3是否合法出入棧操作 1.初始化乙個字串和棧 字串用於存需要判斷的括號,棧用於匹配 2.將字串和棧作為形參傳入函式 3.進入函式,遍歷字串,所有屬於右邊括號的都進棧。遍歷到右括號的時候,用e訪問棧頂,並棧頂元素匹配,如果匹配成功flag 1 並且把棧頂出棧,方便進行下一符號匹配 如果匹配不成功就...