本題要求在乙個陣列中實現兩個堆疊。q1:剛開始的時候題意不是很理解題意,不清楚兩個堆疊到底怎麼分配
a1:後來細想堆疊的特點就是堆疊陣列有兩個方向,但只需要乙個插入點,故理解一邊乙個堆疊的設計方法。
q2:答案錯誤的原因是,在先移動指標還是先修改資料的順序選擇上需要進行仔細思考
a2:自加和自減能更簡便地表達出指標和資料的改動,方便處理返回資料時先返回後移指標的這種情況。
假設在週末舞會上,男士和女士們分別進入舞廳,各自排成一隊。跳舞開始,依次從男隊和女隊隊頭各出一人配成舞伴,若兩隊初始人數不同,則較長那一隊未配對者等待下一輪舞曲。現要求寫一演算法模擬上述舞伴配對問題。 你需要用佇列操作實現上述演算法。請完成下面5個函式的操作。q1:前四個函式為簡單的佇列操作,故可以用一條語句完成
a1:在函式返回資料時採用返回算式的寫法,可增加**的簡潔性,編譯錯誤就是出現在整理**的時候。
q2:同時處理兩個佇列配對問題時,需要設定好配對結束的終止條件
a2:分步處理兩種不同結果,當任一隊列為空時結束配對迴圈,並將非空的佇列資料返回。
請編寫程式檢查c語言源程式中下列符號是否配對:/與/、(與)、[與]、。q1:符號配對失敗的情況有多種,需要進行準確的判斷
a1:可以通過devc舉例模擬,也可以通過直接輸入
來對應測試點的要求,可以減少在這方面耽誤的時間,這也是我一排「部分正確」的原因。
q2:一步步修正**後,最後剩下的測試點是配對完所有**後有多餘左括號的情況
a2:遇到左括號只管入棧,會造成最後雖然正常結束遍歷**但棧中仍有剩餘符號,故需要另外進行棧是否為空的判斷,若不為空才是配對成功。
報數遊戲是這樣的:有n個人圍成一圈,按順序從1到n編好號。從第乙個人開始報數,報到m(mq1:做這道題時思路清晰且用devc處理了編譯錯誤,所以pta上一遍過
a1:queue容器的使用使得佇列的應用容易了許多,只要題意理解,這類題目問題不大。
請編寫程式檢查c語言源程式中下列符號是否配對:/與/、(與)、[與]、。
輸入乙個字尾表示式,程式求出表示式值。案發現場(這段可以選擇性忽略)DS部落格作業03 棧和佇列
在createstack函式中為結構體和陣列分配好記憶體,push函式先判斷堆疊是否滿,然後根據tag對相應堆疊進行輸入 pop函式先根據tag判斷對那個堆疊操作,然後再進行判斷是否為空,不空就出棧。q1 輸出搞錯了,滿是沒有輸出tag沒有輸出 q2 沒賦值直接用mystack maxsize 假設...
DS部落格作業03 棧和佇列
本週學習的內容是棧和佇列,相比前一單元的順序表內容,容易了很多,操作上更加簡便。順序表包括順序表和煉表兩塊大內容,順序表的操作主要有建立順序表,查詢順序表中的元素,順序表元素的插入和刪除。鍊錶的主要操作有頭插法建表和尾插法建表,鍊錶的遍歷查詢,有序鍊錶的插入和刪除以及兩個有序鍊錶的合併。而本單元的棧...
DS部落格作業03 棧和佇列
本週學習的棧和佇列,對我來說難點在於棧和佇列的輸出輸入中的棧空和隊空判斷,容易不小心把兩個寫混。在程式設計時,選擇用棧的順序儲存結構空間利用率高,而用鏈式儲存結構可以不用擔心空間的不足或浪費,二者各有優勢,但目前我用順序儲存結構更多。學了棧和佇列,許多問題的解決變得方便了許多,比如括號問題的求解,表...