iT邦幫忙

0

貯列問題

3.假設指令PUSH X動作是將暫存器X的內容放入STACK中,指令POP X動作是從STACK中
取出一個數目放至暫存器X中,X可為任意暫存器,若暫存器A,B,C,D的內容分別是
18,19,20,21時,依序執行PUSH A,PUSH B,PUSH C,PUSH D,PUSH D,PUSH C,PUSH B,PUSH A,PUSH B後,暫存器A的內容將為
(A)18 (B)19 (C)20 (D)21

4.承3,現在假設指令PUTQ X動作是將暫存器X的內容放入QUEUE,指令GETQ X 是貯
列中取出一個PUTQ A,PUTQ B,GETQ C,GETQ D,PUTQ C,PUTQB,GETQ A,GETQ B後 ,暫存器A的內容將為(A)18 (B)19 (C)20 (D)21

第三題我是會了,但第四題,還是看不太懂怎解,求解QQ

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
海綿寶寶
iT邦大神 1 級 ‧ 2021-03-04 12:23:05
最佳解答

https://ithelp.ithome.com.tw/upload/images/20210304/20001787SMkf07VNpx.png

這樣我就非常看得懂了XD 感謝大大的答案

畫的很漂亮,輸的很服氣

1
koro_michael
iT邦新手 2 級 ‧ 2021-03-04 03:12:39

STACK 的特性是"後進先出"
QUEUE 的特性是"先進先出"

PUTQ A, QUEUE 內部為
18

PUTQ B, QUEUE 內部為
18
19

GETQ C, QUEUE 內部為
19
此時 C = 18

GETQ D, QUEUE 內部為

此時 D = 19

到這一步簡單來說就是把 C = A, D = B

PUTQ C, QUEUE 內部為
18

PUTQ B, QUEUE 內部為
18
19

GETQ A, QUEUE 內部為
19
此時 A = 18

GETQ B QUEUE 內部為

此時 B = 19

到這一步簡單來說就是把 A = C, B = B

所以暫存器 A 的值依然是 18

PS: 第三題全部都是 PUSH,A 的內容永遠都是 18 吧...

感謝回答~~我總算搞懂了

1
小碼農米爾
iT邦高手 1 級 ‧ 2021-03-04 03:25:28

佇列的特性是先進先出

A  B  C  D
18 19 20 21

QUEUE
----------
<--
----------

PUTQ A,PUTQ B

A  B  C  D
18 19 20 21

QUEUE
----------
18 19
----------

GETQ C,GETQ D

A  B  C  D
18 19 18 19

QUEUE
----------

----------

PUTQ C,PUTQB

A  B  C  D
18 19 18 19

QUEUE
----------
18 19
----------

GETQ A,GETQ B

A  B  C  D
18 19 18 19

QUEUE
----------

----------

暫存器 A 的內容為 18

謝謝~~非常感謝

我要發表回答

立即登入回答