顺序表
1. C语言下的顺序表
1.1 定义顺序表
typedef struct {
ElemType * elem;
int length;
int listsize;
} SqList;
1.2 初始化顺序表
Status InitSqList ( SqList & L) {
L. elem = ( ElemType* ) malloc ( 10 * sizeof ( ElemType) ) ;
if ( ! L. elem) return - 2 ;
L. length = 0 ;
L. listsize = 100 ;
return OK;
}
1.3 在第i个位置插入
Status InsertSqList ( SqList & L, int i, ElemType e) {
if ( i< 1 || i> L. length+ 1 ) return ERROR;
if ( L. length>= L. listsize) {
newbase= ( ElemType* ) realloc ( L. elem, ( L. listsize+ 10 ) * sizeof ( ElemType) ) ;
if ( ! newbase) return - 2 ;
L. elem = newbase;
L. listsize + = 10 ;
}
ElemType p, q;
q = & ( L. elem ( i- 1 ) ) ;
for ( p= & ( L. elem[ L. length- 1 ] ) ; p>= q; -- p) {
* ( p+ 1 ) = * p;
}
* q = e;
++ L. length;
return OK;
}
1.4 删除某个位置的元素
Status DeleteSqList ( SqList & L, int i, ElemType & e) {
if ( i< 1 || i> L. length) return ERROR;
p = & ( L. elem[ i- 1 ] ) ;
e = * p;
q = L. elem+ L. length- 1 ;
for ( ++ p; p<= q; ++ p) {
* ( p- 1 ) = * p;
}
-- L. length;
return OK;
}
2. Java语言下的顺序表
2.1 定义顺序表
final int MAX_LENGTH = 10 ;
int length;
int [