精華區beta NTUE-CS100 關於我們 聯絡資訊
class架構出來後,我們就可以開始實做細節啦。 首先我們會面對的問題是 myStack裡說穿了就是一個整數陣列, 要如何讓它具備FILO的特性呢? 其實作法很簡單,我們只要紀錄stack的頂端(top)就好。 舉例 這是個stack,目前是空的,我們依序push 5,30,9三個int進去 =================== | << 這邊是開口 =================== push 5 =================== |5 =================== ^ 用一個指標記住目前stack頂端在哪 push 30 =================== |5 30 =================== ^ 每次push指標就往右一格 push 9 =================== |5 30 9 =================== ^ 繼續右移 接下來要pop的話, 頂端指標所在的位置,就是最後進來的數字,依照FIFO原則後進先出 那個數丟出去就成啦。 ==================== |5 30 把9 pop出來 ==================== ^ 丟出去後指標左移 所以class的架構裡,還要多一個頂端指標的位置 class myStack{ private: int data[99]; int top; //就是它,當top==-1時,代表stack是空的 public: //top=0~98,就代表data目前塞到哪裡 int pop(); void push(int e); }; ps.本篇所說得頂端指標,只是一個紀錄位置的int 跟pointer不同(ex. int* a;) 請不要搞混XD -- 懷著一顆對這個家有無限關愛的心,我 再度流浪到遠方。 --<舒伯特> 這些年來,我唱著歌,唱出愛,可是它對我來說卻是痛苦; 我唱出痛苦,可是它對我來說又是愛。 愛與痛苦就這樣分割著我。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.68.15.109
bill29988688:建中哥有沒有考慮出去家教阿XD 03/25 01:17
taylorwu:我要報名~ 同學打個折吧 XD 03/25 20:14
gingkoginkgo:一人一信 支持建中哥當程設助教>W</ 03/25 20:40
※ 編輯: chchwy 來自: 203.68.15.230 (03/25 21:54)