顺序线性表的插入问题
当数据插入的时候,如果申请的内存空间没有了,重新申请更大空间时,为什么不用初始化插入位置前的那段数据
例如:
- C/C++ code
Status ListInsert(SqList &L,LONG index,ElemType e) //初始条件:线性表L已存在,1<=i<=ListLength(L)+1 //操作结果:在L中的第i个元素之前插入新的数据元素e,L的长度加1 { if((index<1) || (index>L.length+1)){ cout<<"插入的位置不合理"<<endl; return ERROR; } if(L.length>=L.size){ ElemType *newbase=(ElemType*)realloc(L.elem, (L.size+LISTINCREMENT)*sizeof(ElemType)); if(newbase==NULL){ cout<<"增量存储空间分配失败"<<endl; exit(OVERFLOW); } else{ L.elem=newbase; L.size+=LISTINCREMENT; } } //移动元素 int i=L.length; for(;i>index-1;i--) L.elem[i]=L.elem[i-1]; //插入元素 L.elem[index-1]=e; //修改表长 L.length++; return OK; } [解决办法]
可你知道relloac的工作原理吗