5645 - I2P_final1   

Description

輸入資料

8
I 10
I 15
I -20
I 5
I 30
F
S
F

第一個數字 N 代表總共有幾個指令 (上面的例子 N=8)
I 代表 insert, 同時在頭尾各加入一個 node, 因此 list 會多出兩個 node
加在頭的整數如果是 X, 則加在尾的整數是 -X
F 輸出 list 的第一個 node 以及最後一個 node 的資料內容, 並且將它們從 list 移除
S 將 list 從中間切斷 然後對調, list 長度不變, 但是內容會對調

上面的例子
做完每個動作之後
list 的內部變化如下
I 10: (10, -10)
I 15: (15, 10, -10, -15)
I -20: (-20, 15, 10, -10, -15, 20)
I 5 : (5, -20, 15, 10, -10, -15, 20, -5)
I 30: (30, 5, -20, 15, 10, -10, -15, 20, -5, -30)
F   : (5, -20, 15, 10, -10, -15, 20, -5)
S   : (-10, -15, 20, -5, 5, -20, 15, 10)
F   : (-15, 20, -5, 5, -20, 15)

程式應該要輸出
30 -30
-10 10

[提示]
兩個 doubly linked lists
DL_List *d1, *d2, *tmp;
d1 負責前半段
d2 負責後半段

遇到 I X 指令
d1 用 insertBeginning 加入 X
d2 用 insertEnd 加入 -X
遇到 F 指令
d1 輸出 firstNode 的資料並且將 firstNode 移除
d2 輸出 lastNode 的資料並且將 lastNode 移除
遇到 S 指令
交換 d1, d2

以下檔案為 Doubly Linked List 的程式碼提供參考
dl_list.zip

Input

N

指令1

指令2

...

指令N

 

0 < N <100

Output

每次碰到 F 指令時

list 內的頭、尾數分別是多少

將頭、尾數以空白隔開印出 

 

註:

碰到 F 和 S 指令時,list 內至少都會有2個數

input 中至少會有一個 F 指令

最後須加上換行

Sample Input  Download

Sample Output  Download

Tags




Discuss