A-A+
以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从
问题详情
以下函数用来在w数组中插入x。n所指向的存储单元中存放w数组中字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。 void fun(char*w,char x,int*n) { int i, p; p=0; w[*n]=x; while(x>w[p])p++; for(i=*n;i>p;i--)w[i]=【 】; w[p]=x; ++ *n;}
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:w[i-1]
在用数组实现的有序序列中插入内容,必须先寻找插入位置。插入位置找到后,需将插入位置之后的元素向后移动一个位置,留出插入点。最后,将元素插入,并增加序列的元素个数。函数为了简化寻找插入位置循环的循环条件,预先在序列的最后置入插入值。插入位置之后的元素向后移动一个位置必须从最后一个元素开始往前逆序移动,是将前一个元素向后移,所以在空框处应填入w[i-1]。