帮我解释下这个VC程序

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:55:51
题是:在长度为n的线性表的第i个位置插入一个新的数据元素item使长度为n的线性表
(a1,a2,...,ai-1,ai,ai+1,...,an)
变成一个长度为n+1的线性表
(a1,a2,...,ai-1,item,ai,ai+1,...an-1,an)

void INSERTLIST(ElemType A[],int&n,int i,ElemType item)解释下ElemType item, ElemType A[] 是什么意思
{
if(i==MaxSize||i<1||i>n+1)
ERRORMESSAGE("表满或插入位置不正确!");
for(j=n-1;j>=i-1;j--)这个FOr循环语句 实在看不懂
A[j+1]=A[j];
A[i-1]=item;
n++;
}

就是把ai~an往后移动一个位置,腾出ai的空间,以放下item。j=n-1开始,是因为C的数组下标是从0开始的。

将插入位置后面的数据向后移动,就像一队人排好了队,中间没空隙,但有个人要插队,后面的人就都得后退点,不然就挤不进去了。