[理工] 資結問題(已補圖)

作者: yatingiloveu (yo廷廷)   2021-11-03 01:35:49
大家好,小弟我想問個問題。
我外系修課所以也沒有人可以討論,有點問題是想請問各位前輩能否幫我看,
我的「234567 」空格旁邊的藍色code有沒有寫錯。
https://i.imgur.com/QBSMDXx.jpg
再來是有個地方一直看不太懂
(1)
Main fun
現在s.top=stacksize 是3
裡面有個 k[0] =pop()小弟我的理解是call pop這個函式後 存到 k[0]內不太明白為何
傳的是-1
(2)再來是他說s.top = stacksize
那對於後面的程式碼有影響到嗎?他是想表示一開始s.top 指超過比整個stack上面一個
index嗎?有點不太能理解這個操作。
先謝謝感謝各位前輩了。
作者: joywilliamjo (joywilliamjoy)   2021-11-03 05:32:00
你的圖沒上到
作者: gaowei16 (啾啾人)   2021-11-03 08:58:00
作者: jacksoncsie (資工肥宅)   2021-11-03 19:43:00
哪來的code 我只看到1有寫而已https://i.imgur.com/x5dFWjw.png上面的可以跑Ypop function if應該沒有 = 0你應該是對的 我上面錯
作者: foogty (夫葛踢)   2021-11-03 22:02:00
(1)的問題是因為一開始stack為空 所以跑得是pop function else部分(2)如果我沒想錯的話應該是陷阱,一開始說明s.top=STACKSIZE所以這題的stack應該是從s[3]往s[0]長,所以push的話top會往下減(跟教科書的實作方法相反)所以你pop和push function要再注意一下上面打錯應該是s[2]往s[0]長才對
作者: yatingiloveu (yo廷廷)   2021-11-04 19:57:00
謝謝 jack大 f大 我大概了解了感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com