算法 - 将项目插入到连续列表中

与删除一样,我们在插入中有两种情况:

在开头和中间插入:

在这种情况下,我们需要寻找要插入的元素的位置。该操作分两步进行:
  • 用 1.
  • 将所有元素从 n 移到 k,然后将元素插入位置 k.

在末尾插入:

这是一个非常简单的情况,因为没有执行偏移。

结合两种情况的算法:

插入算法;
Var 
 i,k,x:整数;
 T[1..n]:整数;
开始
 阅读;
 n:=n+1;
 对于从 N 到 K 的 i not-1
 faire
  T[i+1] := T[i];
 finfaire
   T[k] := x;
End

程序:

过程 insert(L:list,k:1..lmax, x:element)
var i,n:1..lmax;
Start
 n := L.长度;
 L.Length:= n+1;
 对于从 N 到 K 的 i not-1
 faire
  L.T[i+1] := L.T[i];
 finfaire
 L.T[i] := x;
结束