线性表的顺序存储java实现
public class SeqList {
public int [ ] data;
public int usedSize;
public SeqList init ( ) {
data = new int [ 10 ] ;
usedSize = 0 ;
return this ;
}
public void insert ( int i, int x) {
if ( i< 1 || i> this . usedSize+ 1 ) {
System. out. println ( "位置错误" ) ;
} else if ( this . usedSize>= 10 ) {
System. out. println ( "表已满" ) ;
} else {
for ( int j= this . usedSize+ 1 ; j> i- 1 ; j-- ) {
this . data[ j+ 1 ] = this . data[ j] ;
}
this . data[ i- 1 ] = x;
this . usedSize++ ;
System. out. println ( "插入成功" ) ;
}
}
public void delete ( int i) {
if ( this . usedSize== 0 ) {
System. out. println ( "表为空" ) ;
} else if ( i< 1 || i> this . usedSize- 1 ) {
System. out. println ( "位置错误" ) ;
} else {
for ( int j= i- 1 ; j<= usedSize- 2 ; j++ ) {
this . data[ j] = this . data[ j+ 1 ] ;
}
this . usedSize-- ;
System. out. println ( "删除成功" ) ;
}
}
@Override
public String toString ( ) {
return "SeqList{" +
"data=" + Arrays. toString ( data) +
'}' ;
}
public int query ( int x) {
int i= 0 ;
int result= - 1 ;
while ( i< this . usedSize) {
if ( this . data[ i] == x) {
return result= i;
}
i++ ;
}
return result;
}
}
package SeqList;
public class Main {
public static void main ( String[ ] args) {
SeqList seqList = new SeqList ( ) ;
seqList. init ( ) ;
seqList. insert ( 1 , 3 ) ;
seqList. insert ( 2 , 5 ) ;
seqList. insert ( 3 , 7 ) ;
seqList. insert ( 4 , 8 ) ;
for ( int i= 0 ; i< seqList. usedSize; i++ ) {
System. out. println ( seqList. data[ i] ) ;
}
seqList. delete ( 1 ) ;
for ( int i= 0 ; i< seqList. usedSize; i++ ) {
System. out. println ( seqList. data[ i] ) ;
}
int i= seqList. query ( 5 ) ;
if ( i== - 1 ) {
System. out. println ( "列表中无此数据" ) ;
} else {
System. out. println ( "此数据在列表中的位置是:" + i) ;
}
}
}