思維導圖
定義乙個新佇列
for i=1 to i<=n
把各個元素一一存放到佇列中
while q.size()!=1
如果0==((i+1)%m)且q.size()
寫這道題不知道怎麼用佇列來實現這個演算法,後來通過畫示意圖,得到了乙個規律,就是不斷把前面元素放到結尾,但是完全不會影響到要退出圈子的人的順序,知道這個規律後,再運用queue標頭檔案,就不難寫出該**。
定義兩個新佇列a和b
這個**比較簡單,只要把元素按奇偶分類成兩個佇列,再把兩個佇列中的元素按辦理時間順序依次輸出。要注意的是輸出a佇列的第乙個數後,不能直接就輸出第二個,要先判斷此時的a佇列是否為空。
gets(a);
建立新棧createstack(maxsize)
for j=0 a[j]!='\0'
把陣列中的元素一一入棧
end j
for j=0 a[j]!='\0'
把棧中的元素一一出棧,並分別跟a[j]比較
如果存在 出棧元素!=a[j],證明不是對稱字串
如果迴圈正常跳出,即所有出棧元素均=a[i],證明是對稱字串
剛開始提示段錯誤,但devc上明明可以執行,後來把
改成gets(a),就能通過了。
本次2個題目集總分:125+215=340分
必做題共:205分
3.3 我的總分
208使用兩個棧實現乙個佇列
template class cqueue
~cqueue(void)
{}t deletehead();
private:
stackstack1;
stackstack2;
};templatet cqueue::deletehead()
}tmp = stack2.top();
stack2.pop();
return tmp;
}
入佇列:直接壓入元素至棧1
出佇列:如果棧2不為空,把棧2中的棧頂元素直接彈出。否則,把棧1的所有元素全部彈出壓入棧2中,再彈出棧2的棧頂元素
這種方法思路比較簡單,比較好操作。
部落格作業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...
部落格作業03 棧和佇列
邏輯結構包括 集合,線性結構,樹形結構,圖形結構 線性結構包括 線性表,鍊錶,棧,佇列,串 樹形結構包括 二叉樹等 棧是一種後進先出表,有順序儲存結構和鏈式儲存結構,基本操作包括 初始化 銷毀 進棧 出棧 判斷棧空 去棧頂。主要應用有 字首表示式轉字尾表示式以及字尾表示式的計算 迷宮問題 佇列是一種...