算法 - 从连续列表(数组)中删除项目

我们有两种删除情况:

删除开头和中间:

在这种情况下,我们需要查找要删除的元素的位置。该操作分两步进行:
  • 暗恋”该元素通过移动所有其他具有索引的元素来获得 k 索引 superior.
  • 使用 1.

在末尾删除:

这是一个非常简单的情况,只需用 1.

结合两种情况的算法:

删除算法;
Var 
 i,k : 整数;
 T[1..n]:整数;
Start
 for i 从 k 到 n-1
 faire
  T[i] := T[i+1];
 finfaire
 n := n-1;
End

程序:

过程 delete(L:list,k:1..lmax)
var i,n:1..lmax;
Start
 n := L.长度;
 for i 从 k 到 n-1
 faire
  L.T[i] := L.T[i+1];
 finfaire
 长度:= n-1;
Fin




参见:

算法 | 在链表中插入和删除项目。
算法 | 连续和链式列表.
算法 | 将元素插入到连续的 list(array).
C/C++ | 从数组中删除值。