アルゴリズム - 連続したリスト(配列)から項目を削除する

削除には2つのケースがあります:

先頭と中間を削除:

この場合、削除する要素の位置を探す必要があります。操作は2つのステップで実行されます:
  • クラッシュ」要素は、インデックスを持つ他のすべての要素をシフトすることによって、k インデックスを持ちます superior.
  • 配列のサイズを 1.

最後に削除:

これは非常に単純なケースで、配列のサイズを1.

2つのケースを組み合わせたアルゴリズム:

削除アルゴリズム;
変数 
 i,k : 整数;
 T [1..n]:整数。
Start
 k から n-1 までの i の場合
 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.長さ;
 k から n-1 までの i の場合
 faire
  L.T[i] := L.T[i+1];
 finfaire
 L.長さ:= n-1;
Fin




関連項目:

アルゴリズム | リンクリスト内の項目の挿入と削除.
アルゴリズム | 連続した連鎖リスト.
アルゴリズム | 連続したリスト(配列)に要素を挿入.
C/C++ | 配列から値を削除する.