描述
給定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...