222顺序表的基本操作 q<心 2.定位操作顺序表的定位操作非常简单,由于顺序表的逻辑顺序 与存储顺序一致,则当1<=I<=N时,V[就是顺序表中的第个元 素。其算法流程是 思考: 「输入K《被查值 查找第I个 结点的前驱 和后继应如 何实现? mK?>申查线到,输出结束分析2第个 若l=1,表明是 首结点 若上=N,表明是 K不是顺序表中的元素尾结点 图2=2顺序表的定位操作学华夏学晓信息工程 系
武汉理工大学华夏学院-信息工程 系 2. 定位操作 顺序表的定位操作非常简单,由于顺序表的逻辑顺序 与存储顺序一致,则当1<=I<=N时,V[I]就是顺序表中的第I个元 素。其算法流程是: 输入K (被查值) I=1 V[I]=K? I=I+1 I<=N? 图2-2 顺序表的定位操作 查找到,输出V[I],结束 K不是顺序表中的元素 2.2.2 顺序表的基本操作 + - - + 思考: 查找第I个 结点的前驱 和后继应如 何实现? 分析:第I个 结点的位置, 若I=1,表明是 首结点; 若I=N,表明是 尾结点;
3.插入操作 在顺序表中插入一个元素时,由于顺序表中 的元素是连续存放的,所以在插入前需要考虑以下几个问题: 其一,事先定义的存储区域(数组)是否还有空闲的 单元,若有,则可以插入,否则,表明表已经满了; 其二,要确定插入位置I,即在第I个元素后面插入, 确定插入位置I的方法有直接给出位置I或者给出元素值, 去确定位置I; 〓其三,插入方法是,若I>=N则直接将被插入的值送 往V[N1]单元就可以了,若I<N则表明数组元素V[I+1]不 是空单元,因此在插入新元素之前,要将顺序表中的 V[I+1]~V[N中的所有元素依次向后移动一个位置,空出 数组元素V[+1],再将被插入的值送往V[+1单元。 其四,插入元素厦:应改变将顺序表的长度N 即将原来的N加1取代N其算法流程是:
武汉理工大学华夏学院-信息工程 系 在顺序表中插入一个元素时,由于顺序表中 的元素是连续存放的,所以在插入前需要考虑以下几个问题: 3. 插入操作 其一,事先定义的存储区域(数组)是否还有空闲的 单元,若有,则可以插入,否则,表明表已经满了; 其二,要确定插入位置 I,即在第I个元素后面插入, 确定插入位置I的方法有直接给出位置I或者给出元素值, 去确定位置I; 其三,插入方法是,若I >= N 则直接将被插入的值送 往V[N+1]单元就可以了, 若I<N则表明数组元素V[I+1]不 是空单元,因此在插入新元素之前,要将顺序表中的 V[I+1]~V[N]中的所有元素依次向后移动一个位置,空出 数组元素V[I+1],再将被插入的值送往V[I+1]单元。 其四,插入一个元素后,应改变将顺序表的长度N, 即将原来的N加1取代N,其算法流程是:
图2-3顺序表的插入操作 输入被插入值K 和插入位置 NENO 表满返回 追加 K<=N 插入 VIN+1 V+1=K 移动数据 空出位置 J=J-1 N中改变表长 J=I+1 返回 理工大学华夏学院信息工程 系
武汉理工大学华夏学院-信息工程 系 输入被插入值K 和插入位置I I<=N J=I+1 J=N V[J+1]=V[J] J=J-1 V[I+1]=K N=N+1 返回 V[N+1]=K 表满返回 图2-3 顺序表的插入操作 否 否 追加 插入 N=N0 移动数据 空出位置 改变表长 插入
4.删除操作 ≥在顺序表中删除一个元素时,删除前需要考虑以下几个 问题 其一已建成的顺序表是否为空,若是则表明该线性 表中无结点,因此无元素删除,否则表明表中有结点; 其二,要确定被删结点的位置I,即要删除第个元素, 确定被删位置邛的方法有直接给出位置I者给出元素值, 去确定位置I; 其三,删除方法是,着I=N则表明将要删除的是终 端结点,因此直用N=N-1就可以了,若I<N则表明将 要删除的是非终端结点,因此要将顺序表中的 V[I+1]~VN]中的所有元素依次向前移动一个位置就 唭了;删除后,应修改顺序表的长度N(即N=N1 武汉理工大学华夏学院-信息工程 其算法流程是: 系
武汉理工大学华夏学院-信息工程 系 在顺序表中删除一个元素时,删除前需要考虑以下几个 问题: 4. 删除操作 其一 已建成的顺序表是否为空,若是则表明该线性 表中无结点,因此无元素删除,否则表明表中有结点; 其二,要确定被删结点的位置 I,即要删除第I个元素, 确定被删位置I的方法有直接给出位置I或者给出元素值, 去确定位置I; 其三,删除方法是,若I=N则表明将要删除的是终 端结点,因此直用N=N-1就可以了,若I<N则表明将 要删除的是非终端结点,因此要将顺序表中的 V[I+1]~V[N]中的所有元素依次向前移动一个位置就 可以了。 其四,删除后,应修改顺序表的长度N(即N=N-1)。 其算法流程是:
图2-4顺序表的删除操作 输入被删除值K 除最后一个结点 NN-I 表空返回 J=I+1 改变表 VU-1=VU] J=J+1 N=N-1 返回 武汉理工大学华夏学院信息工程 系
武汉理工大学华夏学院-信息工程 系 输入被删除值K 的位置I J=I+1 V[J-1]=V[J] J=J+1 表空返回 N=N-1 N=N-1 返回 图2-4 顺序表的删除操作 删除最后一个结点 + - 改变表长 I=n N=0 N=j