public class DS3_0723{
private int[] a
;
private int size
;
public DS3_0723(){
a
=new int[2];
size
=0;
}
public void pushBack(int element
) {
ensureCapacity();
a
[size
]=element
;
size
++;
}
public void pushFront(int element
) {
ensureCapacity();
for(int i
=size
-1;i
>=0;i
--){
a
[i
+1]=a
[i
];
}
a
[0]=element
;
size
++;
}
public void insert(int index
, int element
) {
if(index
<0||index
>size
){
System
.err
.println("输入下标有误,请重新输入!");
return;
}
ensureCapacity();
for(int i
=size
-1;i
>=index
;i
--){
a
[i
+1]=a
[i
];
}
a
[index
]=element
;
size
++;
}
public void popBack() {
if(size
<=0){
System
.err
.println("顺序表为空");
return;
}
size
--;
a
[size
]=0;
}
public void popFront() {
if(size
<=0){
System
.err
.println("顺序表为空");
return;
}
for(int i
=0;i
<=size
-2;i
++){
a
[i
]=a
[i
+1];
}
size
--;
}
public void earse(int index
) {
if(size
<=0){
System
.err
.println("顺序表为空");
return;
}
if(index
<0||index
>size
){
System
.err
.println("输入下标有误,请重新输入!");
return;
}
for(int i
=index
;i
<=size
-2;i
++){
a
[i
]=a
[i
+1];
}
size
--;
a
[size
]=0;
}
public void remove(int element
) {
int index
=searchIndex(element
);
if(index
!=-1){
earse(index
);
}
}
public void removeAll(int element
) {
int j
=0;
for(int i
=0;i
<size
;i
++){
if(a
[i
]!=element
){
a
[j
++]=a
[i
];
}
}
size
=j
;
}
public int searchIndex(int element
){
for(int i
=0;i
<size
;i
++){
if(a
[i
]==element
){
return i
;
}
}
return -1;
}
public int searchElement(int index
){
if(index
<0||index
>size
){
System
.err
.println("输入下标有误,请重新输入!");
return -1;
}
return a
[index
];
}
public void change(int index
,int element
){
if(index
<0||index
>size
){
System
.err
.println("输入下标有误,请重新输入!");
return;
}
a
[index
]=element
;
}
public void print() {
System
.out
.print("当前顺序表为:");
for(int i
=0;i
<size
;i
++){
System
.out
.print(a
[i
]+" ");
}
System
.out
.println();
System
.out
.println("当前容量为:"+a
.length
);
System
.out
.println();
}
private void ensureCapacity() {
if(size
<a
.length
){
return;
}
int newCapacity
=a
.length
*2;
int[] newArray
=new int[newCapacity
];
for(int i
=0;i
<size
;i
++){
newArray
[i
]=a
[i
];
}
a
=newArray
;
}
public static void main(String
[] args
){
DS3_0723 data
=new DS3_0723();
data
.print();
data
.pushBack(1);
data
.pushBack(6);
data
.pushBack(7);
data
.print();
data
.pushFront(30);
data
.pushFront(3);
data
.pushFront(10);
data
.print();
data
.insert(2,200);
data
.insert(0,11);
data
.insert(3,11);
data
.insert(7,3);
data
.print();
data
.insert(11,1);
data
.popBack();
data
.print();
data
.popFront();
data
.print();
data
.earse(2);
data
.print();
data
.remove(200);
data
.print();
data
.removeAll(3);
data
.print();
data
.searchIndex(30);
data
.searchElement(3);
data
.change(1,10);
data
.print();
data
.change(13,3);
data
.print();
}
}
转载请注明原文地址: https://win8.8miu.com/read-1453206.html