读书人

顺序线性表的插入有关问题

发布时间: 2012-07-27 11:03:00 作者: rapoo

顺序线性表的插入问题
当数据插入的时候,如果申请的内存空间没有了,重新申请更大空间时,为什么不用初始化插入位置前的那段数据
例如:

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的工作原理吗

读书人网 >C语言

热点推荐