已知N个数已存入数组A[1…M]的前N个元素中(N<M),为在A[i](1≤i≤

免费题库2022-08-02  36

问题 已知N个数已存入数组A[1…M]的前N个元素中(N<M),为在A(1≤i≤N)之前插入一个新数,应先(),以挪出一个空闲位置插入该数。A.从A开始直到A[l],每个数向后移动一个位置B.从A[1]开始直到A,每个数向后移动一个位置C.从A开始直到A[N],每个数向前移动一个位置D.从A[N]开始直到A,每个数间后移动一个位置

选项 A.从A开始直到A[l],每个数向后移动一个位置
B.从A[1]开始直到A,每个数向后移动一个位置
C.从A开始直到A[N],每个数向前移动一个位置
D.从A[N]开始直到A,每个数间后移动一个位置

答案 D

解析 本题考查用顺序方式存储线性表元素的插入运算特点。数组A[1..M]元素的布局如下图所示。对于选项A,从A开始直到A[1]的每个数向后移动一个位置,会将A[i+1]原来的值覆盖,挪出的空闲位置为A[1],显然不符合新元素插入在A之前(即A[i-1]之后)的要求。    对于选项B,从A[1]开始直到A的每个数向后移动一个位置,使A[2]的值被改为与A[1]相同,使A[3]的值被改为与A[2]相同,依此类推,A的值等于A[i-1],即完成该操作后,元素A[1]到A的值都相同(等于A[1])。    对于选项C,从A开始直到A闪的每个数向前移动一个位置,使A[i-1]的值被改为A的值,A的值被改为A[i+1]的值,依此类推,A[N-1]的值为A[N]的值,相当于挪出来的空闲位置为A[N],显然不符合新元素插入在A之前的要求。    对于选项D,从A[N]开始直到A的每个数向后移动一个位置,使A[N]的值移入A[N+1], A[N-1]的值移入A[N],依此类推,A的值移入A[i+1],这样挪出来的空闲位置为A,完成了将新元素插入在A[i-1]之后(即A之前)的操作要求。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2428342.html

最新回复(0)