Re: [問題] 資料結構-用c語言array寫stack,push和 …

看板C_and_CPP (C/C++)作者 (nahgnimiast)時間16年前 (2009/04/09 22:37), 編輯推噓2(2013)
留言15則, 3人參與, 最新討論串2/5 (看更多)
※ 引述《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

04/09 22:45, , 1F
恩...書上是有這麼說~@@"~不過我在想應該加一個if就好
04/09 22:45, 1F

04/09 22:45, , 2F
if (S.top >= 0){S.item[S.top++]=x;}
04/09 22:45, 2F

04/09 22:46, , 3F
補上試試看..
04/09 22:46, 3F

04/09 22:47, , 4F
對。只是加個if判斷而已
04/09 22:47, 4F

04/09 22:47, , 5F
不是加了就好= =
04/09 22:47, 5F

04/09 22:48, , 6F
push該判斷的是ifFull, pop該判斷的是ifEmpty
04/09 22:48, 6F

04/09 22:48, , 7F
S.top >= 0加在 push是恆成立的
04/09 22:48, 7F

04/09 22:48, , 8F
除非S.top overflow
04/09 22:48, 8F

04/09 22:49, , 9F
啊,沒注意到二樓寫的判斷是錯的…
04/09 22:49, 9F

04/09 22:50, , 10F
sorry樓上 我不是針對你回應的 ^^"
04/09 22:50, 10F

04/09 22:52, , 11F
了解 ^^ll
04/09 22:52, 11F

04/09 23:17, , 12F
剛又試了好一陣子><"~請問是否要讓出記憶體空間給程式
04/09 23:17, 12F

04/09 23:17, , 13F
目前參數少可以做,可是參數一多就會直接跳掉...
04/09 23:17, 13F

04/09 23:19, , 14F
有錯誤訊息嗎?
04/09 23:19, 14F

04/09 23:22, , 15F
另外如果用vs2005的話,可以設中斷點,對debug很方便
04/09 23:22, 15F
文章代碼(AID): #19tWX7pe (C_and_CPP)
文章代碼(AID): #19tWX7pe (C_and_CPP)