第03次作業 棧和佇列

2022-09-13 11:00:15 字數 2216 閱讀 3618

1.學習總結

2.pta實驗作業

2.1 題目1:字串是否對稱(20 分)

2.2 設計思路(偽**或流程圖)

定義i記錄字元個數;

定義k判斷字串是否對稱;

定義陣列a[i]儲存字元;

while

s->top1不等於s->maxsize;

do 將字元入棧;

endwhile

s->top1-1不等於-1;

do 字元出棧;

判斷是否對稱;

end

2.3 **截圖

2.4 pta提交列表說明

錯誤1:將大寫的s寫成了小寫的;

錯誤2:沒有弄清楚棧頂元素的位置,沒有找對進行比較的元素對應位置;

解決方法:將小寫s改為大寫,通過除錯找到比較元素對應位置;

2.1 題目2:表示式轉換

2.2設計思路(偽**或流程圖)

定義len來記錄字串長度;

定義陣列a輸入儲存字元;

定義陣列b來儲存字元輸出順序;

for i=0 to len-1

判斷a[i]是否為數字,是則存入陣列b;

若不是則入棧;

根據符號優先順序判斷符號出棧順序;

end for

2.3 **截圖

2.4 pta提交列表說明。

錯誤1:使用getchar()讀取字元,導致字元進出棧錯誤.

錯誤2:以為表示式不超過20個字元是數字加符號不超過20.

解決方法:將getchar()改為gets(),改變陣列的儲存範圍。

2.1 題目3:jmu-報數遊戲

2.2設計思路(偽**或流程圖)

定義陣列 a儲存人的編號;

定義陣列b儲存報到m的人的編號;

定義count記錄佇列的元素個素;

while count大於等於1

do

將報到m前面的編號出隊,再重新入隊;

記錄報到m的編號,並將其出隊;

在佇列元素小於m時,將剩下的元素出隊;

end

2.3 **截圖

2.4 pta提交列表說明。

錯誤1:提交時沒有把編譯環境改為c++.

錯誤2:漏了判斷報到數大於總人數的情況.

錯誤3:一開始的時候沒有把元素全部入隊,而是入到第m個的時候把m前面的全部出隊,再重新入隊,導致有些數根本沒有入隊。

解決方法:將環境改為c++,加上判斷報到數是否大於總人數的表示式,將元素先全部入隊,再判斷它們的出隊順序和再入隊順序。

3.截圖本週題目集的pta最後排名

3.1 棧pta排名

3.2 佇列pta排名

3.3 我的總分:2分

4. 閱讀**

功能:堆疊模擬佇列

優點:簡單易懂,很容易看懂如何使兩個堆疊模擬出乙個佇列。

5. **git提交記錄截圖

第03次作業 棧和佇列

2.1 題目 棧 7 1字串是否對稱 7 2符號配對 佇列 7 2銀行業務佇列的簡單模擬 2.2 設計思路 棧 7 1字串是否對稱 7 2符號配對 佇列 7 2銀行業務佇列的簡單模擬 2.3 截圖 棧 7 1字串是否對稱 7 2符號配對 佇列 7 2銀行業務佇列的簡單模擬 2.4 pta提交列表說明...

部落格作業03 棧和佇列

定義乙個棧s用來存放str字串的值 str的值依次如s棧中 str的值與s值依次比較 如果有乙個不等,return 0 反之都相等 return 1 建立佇列q1 將1至n的數字依次入佇列 如果m大於n return error 否則while i 沒有考慮到結尾不能有多餘空格 將認識排號為奇數存入...

部落格作業03 棧和佇列

1.1緒論 程式 資料結構 演算法 資料組織方式 1資料的邏輯結構和資料的儲存結構,邏輯結構 集合,線性結構,樹形結構,圖形結構,儲存方式 順序儲存方式,鏈式儲存方式,索引儲存方式,雜湊儲存方式 空間複雜度,時間複雜度 邏輯結構 線性結構 鏈式儲存方式 順序儲存方式。順序儲存方式 操作 creatl...