這題如果用陣列模擬鍊錶,一定要用雙鏈表!!!
先看看用單鏈表會出現什麼問題
下面展示一些內聯**片
。
單鏈表的刪除
//刪除第k點的下乙個點
void
remove
(int k)
比如鍊錶是:2-
>1-
>3-
>3-
>5-
>70
1234
5(節點)
如果刪除元素3
先remove(1);
此時會出現 1號節點指向3號節點,2號節點指向3號節點
下一步 remove(2
)此時會出現 2號節點指向4號節點,3號節點指向4號節點
那麼總體結果就是 0號節點-
>
1號節點-
>
3號節點-
>
4號節點...
.這樣子3號節點的3就沒有刪除。
原因:單鏈表方向只有乙個,會出現多指。
所以要用雙鏈表
下面展示一些內聯**片
。
ac的雙鏈表
#include
#include
#include
#include.h>
using namespace std;
const int n
=200010
;int e[n]
,l[n
],r[n]
,idx;
//初始化
void
inti()
//在下標為 k 的節點後面 插入乙個數 x,
void
add(int k,int x)
//刪除下標為 k 的節點 後乙個數
void
remove
(int k)
int main()
int w;
cin>>w;
for(int i = r[0]
; i !=
1; i = r[i]
)for
(int i = r[0]
; i !=
1; i = r[i]
) cout << e[i]
<<
' ';
}
下次再見了。 noi 6378 刪除陣列中的元素 鍊錶
描述給定n個整數,將這些整數中與m相等的刪除 假定給出的整數序列為 1,3,3,0,3,5,6,8,3,10,22,1,3,5,11,20,100,3,9,3 應該將其放在乙個鍊錶中,鍊錶長度為20 要刪除的數是3,刪除以後,鍊錶中只剩14個元素 1 0 3 5 6 8 10 22 1 5 11 2...
php中刪除陣列元素
users array 1 張三 2 李四 3 王五 print r users echo unset users 2 print r users echo student array 1 mike 2 tom 3 jerry 4 lucy 5 lili array splice student,3...
如何刪除陣列中的元素
php中的陣列要新增元素非常簡單,直接用賦值就行了,陣列的key會自動增加,但是要刪除陣列中的元素呢?你想過嗎?是不是很少遇到?我近日在處理乙個購物籃程式時遇到了要刪除陣列中元素的問題,尋找了半天,終於找到了刪除陣列的方法,其實很簡單.開始我參照一篇文章 字串陣列,刪除陣列元素 oso中有 中的方法...