作者tsaiminghan (nahgnimiast)
看板C_and_CPP
標題Re: [問題] 資料結構-用c語言array寫stack,push和 …
時間Thu Apr 9 22:37:56 2009
※ 引述《lovemost (最愛)》之銘言:
: typedef struct STACK
: {
: char item [100];
: int top;
: }STACK;
: STACK S;
:
: void push(char );
: void pop(char *);
:
: int main(){
: S.top=0;
: void push(char x){
: S.top++;
: S.item[S.top]=x;
: }
:
: void pop(char *x){
: *x=S.item[S.top];
: S.top--;
: }
我只看了statck的部分
假設top永遠指向空白位置。
S.top = 0;
void push(char x)
{
S.item[S.top++] = x;
}
void pop(char *x)
{
*x = S.item[--S.top];
}
其實以前寫作業的時候,會加個
isFull 和 isEmpty的檢查。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.217.111.110
1F:推 lovemost:恩...書上是有這麼說~@@"~不過我在想應該加一個if就好 04/09 22:45
2F:→ lovemost:if (S.top >= 0){S.item[S.top++]=x;} 04/09 22:45
3F:→ lovemost:補上試試看.. 04/09 22:46
4F:→ tsaiminghan:對。只是加個if判斷而已 04/09 22:47
5F:→ sunneo:不是加了就好= = 04/09 22:47
6F:→ sunneo:push該判斷的是ifFull, pop該判斷的是ifEmpty 04/09 22:48
7F:→ sunneo:S.top >= 0加在 push是恆成立的 04/09 22:48
8F:→ sunneo:除非S.top overflow 04/09 22:48
9F:→ tsaiminghan:啊,沒注意到二樓寫的判斷是錯的… 04/09 22:49
10F:→ sunneo:sorry樓上 我不是針對你回應的 ^^" 04/09 22:50
11F:→ tsaiminghan:了解 ^^ll 04/09 22:52
12F:推 lovemost:剛又試了好一陣子><"~請問是否要讓出記憶體空間給程式 04/09 23:17
13F:→ lovemost:目前參數少可以做,可是參數一多就會直接跳掉... 04/09 23:17
14F:→ tsaiminghan:有錯誤訊息嗎? 04/09 23:19
15F:→ tsaiminghan:另外如果用vs2005的話,可以設中斷點,對debug很方便 04/09 23:22