作者chchwy (mat)
看板NTUE-CS100
標題Re: [課業] 程設作業
時間Tue Mar 25 01:06:58 2008
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)