数据结构实验(三)线性表的操作与应用
作者:互联网
6-1 顺序表实现
int ListLength(SqList L){
return L.length;
}
int LocateElem(SqList L , ElemType e , Status (*compare)(ElemType , ElemType) ){
// 虽然说i的范围是从[1,n],但是实际上在内存的中的位置是[elem,elem+n-1]
// 所以要从0开始遍历
for( int i = 0 ; i < L.length ; i ++ )
if( compare( L.elem[i] , e ) ) return i+1;
return 0;
}
Status ListInsert( SqList &L , int i , ElemType e ){
if( i < 1 || i > L.length+1 ) return ERROR; // 插入位置不合法
if( L.length >= L.listsize ) { // 如果当前的内存已经用完就要扩展内存
L.listsize += LISTINCREMENT;
ElemType * newbase = ( ElemType * ) realloc( L.elem , L.listsize*sizeof(ElemType));
if( !newbase ) return ERROR;//扩展失败
L.elem = newbase;
}
for( int j = L.length ; j >= i ; j -- )
L.elem[j] = L.elem[j-1]; // 开始把i往后的每一位向后移动一位
L.elem[i-1] = e;
L.length ++;
return OK;
}
标签:return,线性表,int,ElemType,listsize,elem,length,实验,数据结构 来源: https://www.cnblogs.com/PHarr/p/16693327.html