Re: [問題] 資結
※ 引述《kaedeyuki (大R)》之銘言:
: 有兩題,但不敢肯定答案,想請問一下解法,懇求幫助謝謝
: 1. 假設堆疊大小是6,push()函數會江資料加入堆疊內,pop()函數會取出堆疊頂端資料
: 若有一程式如下,請寫出printf()函數執行的結果
: Void main()
: {
: push(10);
: push(20);
: push(30);
: push(pop()+40);
: printf("%d\n", pop());
: printf("%d\n", pop()-pop());
: }
stack是FILO
push(10) => ˍˍˍˍ
10 |
 ̄ ̄ ̄ ̄
push(20) => ˍˍˍˍˍ
20 10 |
 ̄ ̄ ̄ ̄ ̄
push(30) => ˍˍˍˍˍˍ
30 20 10 |
 ̄ ̄ ̄ ̄ ̄ ̄
push(pop()+40) => pop出30 , 30+40=70 , push(70)
so , ˍˍˍˍˍˍ
70 20 10 |
 ̄ ̄ ̄ ̄ ̄ ̄
printf("%d\n",pop()) => pop出70 , 印出70
printf("%d\n",pop()-pop()) => pop出20 , 在pop出10 , 20-10=10 , 印出10
: 2. 假設環狀佇列的大小是6,add()函數會將資料加入佇列中,delete()函數會從
: 佇列中取出一資料,若有一程式如下,請寫出printf()函數執行結果
: Void main()
: {
: add(10);
: add(20);
: add(30);
: add(delete()+40);
: printf("%d\n", delete());
: printf("%d\n", delete()-delete());
: }
Queue是FIFO
add(10) => ˍˍˍˍ
10
 ̄ ̄ ̄ ̄
add(20) => ˍˍˍˍˍ
20 10
 ̄ ̄ ̄ ̄ ̄
add(30) => ˍˍˍˍˍˍ
30 20 10
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
add(delete()+40) => delete出10 , 10+40=50 , add(50) ,
so , ˍˍˍˍˍˍ
50 30 20
 ̄ ̄ ̄ ̄ ̄ ̄
printf("%d\n",delete()) => delete出20 , 印出20
printtf("%d\n",delete()-delete()) => delete出30 , 再delete出50 ,
30-50=-20 , 印出 -20
--
***********************************************************************
*** 今夜 咖啡仍然喝不醉 現在它就像白開水一樣無味 ***
*** 放著抒情的音樂 聆聽最後的章節 望著對街 十六夜之月 多麼美 ***
*** 一個人的深夜 說不出來的哽咽 除了心碎 眼淚已經悄悄往下墜 ***
*** 喝了咖啡 習慣一個人的夜 天亮 仍然是咖啡 陪我入睡 ***
***********************************************************************
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.125.191.205
討論串 (同標題文章)