按顺序存储方式存储的线性表具有顺序存储结构,一般称之为顺序表。换言之,在程序中采用定长的一维数组,按照顺序存储方式存储的线性表,被称为顺序表。线性表的顺序存储结构是一种可以随机存取的存储结构。
一、插入算法
要求在顺序表A中下标为k的结点后插入字段值为item的结点。该插入操作较容易实现,只需从后向前将A中下标大于k的结点均后移一个位置,但前提是必须保证顺序表未满(length≠Maxsize),且插入位置合法。
ADL语言实现:
算法 Insert(A, k, item. A)
//在顺序表A中下标为k的结点后插入字段值为item的结点,length系指顺序表当前长度
I1.[插入合法?] //三种情况下不能插入
IF(k < 1 OR k> length OR length=Maxsize) THEN (PRINT"插入不合法". RETURN.)
I2.[插入] //从后向前将下标大于k的结点均后移一个位置
FOR i = length TO k+1 STEP -1 DO A[ i + 1 ]<-A[ i ]. //设起始下标从1开始
A[ k + 1 ] <- item.
length <- length+1. ▎
C++语言实现:
二、删除算法
要求在顺序表A中删除下标为k的结点。
在保证顺序表非空且删除位置合法的前提下,实现该删除操作只需从前向后将顺序表中下标大于k的结点均前移一个位置。
ADL语言实现:
算法 Delete(A, k . A) //删除顺序表A中下标为k的结点
I1.[删除合法?] //三种情况下不能删除
IF(k < 1 OR k> length OR length=0) THEN (PRINT"删除不合法". RETURN.)
I2.[删除]
FOR i = k+1 TO length DO A[ i - 1 ]<-A[ i ]. //设起始下标从1开始
length <- length-1. ▎
C++语言实现: