作者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
1F:推 bill29988688:建中哥有没有考虑出去家教阿XD 03/25 01:17
2F:推 taylorwu:我要报名~ 同学打个折吧 XD 03/25 20:14
3F:推 gingkoginkgo:一人一信 支持建中哥当程设助教>W</ 03/25 20:40
※ 编辑: chchwy 来自: 203.68.15.230 (03/25 21:54)