題意:實現乙個單鏈表,鍊錶初始為空,支援三種操作:
向煉表頭插入乙個數;
刪除第 k
kk 個插入的數後面的數;
在第 k
kk 個插入的數後插入乙個數。
現在要對該鍊錶進行 m
mm 次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。
注意:題目中第 k
kk 個插入的數並不是指當前鍊錶的第 k
kk 個數。例如操作過程中一共插入了 n
nn 個數,則按照插入的時間順序,這 n
nn 個數依次為:第 1
11 個插入的數,第 2
22 個插入的數,…第 n
nn 個插入的數。
思路:ac**:
#include
using
namespace std;
const
int n =
100010
;// head 儲存頭結點的下標
// e[i] 表示節點i的值
// ne[i] 表示節點i的next指標是多少
// idx 表示當前已經用到了哪個點
int head, e[n]
, ne[n]
, idx;
// 初始化
void
init()
// 將x插到頭結點
void
add_to_head
(int x)
// 將x插到下標是k的點後面
void
add(
int k,
int x)
// 將下標是k的點後面的點刪掉
void
remove
(int k)
intmain()
else
if(op ==
'd')
else
}for
(int i = head; i !=-1
; i = ne[i]
) cout << e[i]
<<
' ';
cout << endl;
return0;
}
AcWing 826 單鏈表
實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...
AcWing 826 單鏈表
實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...
AcWing 826 單鏈表
實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...