鍊錶 刪除陣列中的元素 STL

2021-09-07 20:11:12 字數 1501 閱讀 8479

描述

給定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 20 100 9

要求:必須使用鍊錶,不允許使用陣列,也不允許不刪除元素直接輸出 

程式中必須有鍊錶的相關操作:建立鍊錶,刪除元素,輸出刪除後鍊錶中元素,釋放鍊錶 

不符合要求的程式即使通過,也會算作0分  輸入

輸入包含3行:

第一行是乙個整數n(1 <= n <= 200000),代表陣列中元素的個數。

第二行包含n個整數,代表陣列中的n個元素。每個整數之間用空格分隔;每個整數的取值在32位有符號整數範圍以內。

第三行是乙個整數k,代表待刪除元素的值(k的取值也在32位有符號整數範圍內)。

輸出輸出只有1行:

將陣列內所有待刪除元素刪除以後,輸出陣列內的剩餘元素的值,每個整數之間用空格分隔。

樣例輸入

20

1 3 3 0 -3 5 6 8 3 10 22 -1 3 5 11 20 100 3 9 3

3

樣例輸出

1 0 -3 5 6 8 10 22 -1 5 11 20 100 9
#includestruct node*head,*tail,*p;

int main()

p = new node; //新建乙個虛擬尾結點,方便刪除、查詢、輸出

p->pre = tail;

p->nxt = null;

tail->nxt = p;//注意不要忘寫了

tail = p;

int k;

scanf("%d",&k);

p = head->nxt; //p剛開始指向第乙個數,即頭結點的下乙個結點

while(p != tail)//刪除與k相同的數

p = p->nxt; }

p = head->nxt;//輸出剩餘的結點

while(p != tail)

return 0;

}

方法二:使用stl

#include#include#includeusing namespace std;

lista;

int main()

int m;

scanf("%d",&m);

list::iterator it;

for(it = a.begin(); it != a.end(); it++)

for(it = a.begin(); it != a.end(); it++)

return 0;

}

6378 刪除陣列中的元素(用陣列模擬鍊錶 鍊錶)

這題如果用陣列模擬鍊錶,一定要用雙鏈表!先看看用單鏈表會出現什麼問題 下面展示一些內聯 片。單鏈表的刪除 刪除第k點的下乙個點 void remove int k 比如鍊錶是 2 1 3 3 5 70 1234 5 節點 如果刪除元素3 先remove 1 此時會出現 1號節點指向3號節點,2號節點...

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...