輸入資料
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
N
指令1
指令2
...
指令N
0 < N <100
每次碰到 F 指令時
list 內的頭、尾數分別是多少
將頭、尾數以空白隔開印出
註:
碰到 F 和 S 指令時,list 內至少都會有2個數
input 中至少會有一個 F 指令
最後須加上換行