# include  <iostream> # include  <algorithm> # define  InitSize  5 using  namespace  std; 
typedef  struct { int  data[ InitSize] ; int  length_; 
} Sqlist_; 
typedef  struct { int  * data; int  MaxSize, length; 
} SqList; void  OutputList ( SqList L) { for ( int  i= 0 ; i< L. MaxSize; i++ ) printf ( "%d " , L. data[ i] ) ; printf ( "\n" ) ; 
} void  InitList ( SqList & L) { L. MaxSize= InitSize; L. length= L. MaxSize- 1 ; L. data= new  int [ L. MaxSize] ; fill ( L. data, L. data+ L. MaxSize, - 1 ) ; for ( int  i= 0 ; i< L. length; i++ ) L. data[ i] = i; 
} 
bool  ListInsert ( SqList & L, int  i, int  e) { for ( int  j= L. length; j>= i; j-- ) { L. data[ j] = L. data[ j- 1 ] ; } L. data[ i] = e; L. length++ ; return  true ; 
} 
bool  ListDelete ( SqList & L, int  i) { for ( int  j= i; j< L. length- 1 ; j++ ) L. data[ j] = L. data[ j+ 1 ] ; L. length-- ; fill ( L. data+ L. length, L. data+ L. MaxSize, - 1 ) ; 
} 
int  LocateElem ( SqList L, int  e) { for ( int  i= 0 ; i< L. length; i++ ) if ( L. data[ i] == e) return  i; return  - 1 ; 
} int  main ( ) 
{ SqList L; InitList ( L) ; OutputList ( L) ; ListInsert ( L, 1 , 9 ) ; OutputList ( L) ; ListDelete ( L, 1 ) ; OutputList ( L) ; LocateElem ( L, 1 ) ; printf ( "%d" , LocateElem ( L, 1 ) ) ; return  0 ; 
}