区别顺序表的清空和销毁两个操作

区别顺序表的清空和销毁两个操作

清空操作,把表中的元素清空,但已表结构依然存在于内存中,它的实现方法是:

Status ClearList_Sq(SqList &L)

{

   L.length = 0;

         return(OK);

}

因为插入、删除、查找等操作都会对参数有一个类似限制条件:if(i>L.length || i<1),这样就保证了在把length设为0后,其他操作就不能访问到原来的那些元素(实质上原来的元素还是在内存空间里的,如果直接用索引去访问,任然可以把元素读取出来的),那么就可以认为length=0的表是空表,此条件也就是判断表是否为空的唯一依据。

销毁操作,则是把表的整一个结构给消灭掉,把原来所占有的内存空间都给释放出来,它的实现是:

Status DestroyList_Sq(SqList &L)

{

         //ifthis list is init then destroy it

         if(L.elem){

                   free(L.elem);

                   L.elem= NULL;

                   L.length= 0;

                   L.listsize= 0;

         }

   //else return error_msg

         else{

                   return(ERROR);

         }

 

         return(OK);

}

你可能感兴趣的:(数据结构)