Java对顺序表的练习
程序员文章站
2022-07-05 09:30:40
顺序表在底层本质上就是一个数组所以对顺序表的操作就是对数组的操作要加强对数组的练习import java.util.Arrays;class Practice{ public static class MyArrayList { private int usedSize; private int[] elem; public MyArrayList(){ this.elem=new int[5]; }...
顺序表在底层本质上就是一个数组
所以对顺序表的操作就是对数组的操作
要加强对数组的练习
import java.util.Arrays;
class Practice{
public static class MyArrayList {
private int usedSize;
private int[] elem;
public MyArrayList(){
this.elem=new int[5];
}
//输入
public void insert(int num){
this.elem[this.usedSize]=num;
this.usedSize++;
}
//打印
public void Show(){
for (int i = 0; i <this.usedSize; i++) {
System.out.print(this.elem[i]+" ");
}
}
//判断满
public boolean isFull(int[] elem){
if(this.usedSize==elem.length){
return true;
}
return false;
}
//扩容
public void enlarge(){
this.elem=Arrays.copyOf(this.elem,2*this.elem.length);
}
//在pos位置插入data
public void add(int pos,int data){
//先判断是否满了
if(isFull(elem)){
//System.out.println("满了!");
enlarge();
}
//判断pos位置是否合法
if (pos>this.usedSize||pos<0){
System.out.println("pos位置不合法");
}
//移动元素
//从后往前循环,保证不越界
for (int i=usedSize-1 ;i>=pos; i--) {
this.elem[i+1]=this.elem[i];
}
this.elem[pos]=data;
this.usedSize++;
}
//是否包含某个元素
public boolean contain(int toFind){
for (int i = 0; i <this.usedSize ; i++) {
if(this.elem[i]==toFind){
return true;
}
}
return false;
}
//查找某个元素对应位置
public int search(int toFind){
for (int i = 0; i <this.usedSize ; i++) {
if(toFind==this.elem[i]){
return i;
}
}
return -1;
}
//获取pos位置的元素
public int getPos(int pos){
if(pos<0||pos>this.usedSize){
return -1;
}
return this.elem[pos];
}
//给pos位置元素设置成value
public void setPos(int pos,int value){
if(pos<0||pos>this.usedSize){
System.out.println("pos输入有误!");
return ;
}
this.elem[pos]=value;
}
//获取顺序表长度
public int Length(){
return this.elem.length;
}
//清空顺序表
public void Clear(){
this.usedSize=0;
}
//删除第一次出现的关键字key=2
public void Delete(int key){
int index=search(key);
if(index==-1){
System.out.println("没找到!");
return;
}
for (int i = index; i <this.usedSize-1 ; i++) {
this.elem[i]=this.elem[i+1];
}
this.usedSize--;
}
}
public static void main(String[] args) {
MyArrayList list=new MyArrayList();
list.insert(1);
list.insert(5);
list.insert(3);
list.insert(2);
list.Show();
//插入
list.add(3,7);
System.out.println("插入后:");
list.Show();
//是否包含
System.out.println();
System.out.print(list.contain(3));
//查找元素位置
System.out.println();
System.out.println("该元素的下标为:"+list.search(4));
//获取pos位置元素
System.out.println(list.getPos(3));
//pos位置设为value
list.setPos(2,9);
list.Show();
//获取长度
System.out.println();
System.out.println("长度为:"+list.Length());
//删除第一次出现key
list.Delete(1);
list.Show();
//清空顺序表
System.out.println();
System.out.println("清空顺序表");
list.Clear();
}
}
本文地址:https://blog.csdn.net/qq_45852612/article/details/111991447
上一篇: 力扣-无重复字符的最长子串
下一篇: 考验你孝心的时候到了