【顺序表的模拟实现Java】

CSDN 2024-10-23 09:05:03 阅读 92

【顺序表的模拟实现Java】

顺序表的介绍Java代码实现检验代码功能

顺序表的介绍

由于之前在c语言板块写过详细的顺序表介绍,所以这一篇文章主要为Java代码的实现

下面为顺序表介绍的链接,如有需要点击下方链接跳转

c语言顺序表讲解

Java代码实现

<code>public class MyArraylist { -- -->

public int[] elem;

public int usedSize;//0

//默认容量

private static final int DEFAULT_SIZE = 10;

public MyArraylist() {

this.elem = new int[DEFAULT_SIZE];

}

/**

* 打印顺序表:

* 根据usedSize判断即可

*/

public void display() {

for (int i = 0; i < usedSize; i++) {

System.out.print(elem[i]+" ");

}

System.out.println("\n");

}

// 新增元素,默认在数组最后新增

public void add(int data) {

if(isFull()) return;

elem[usedSize++]=data;

}

/**

* 判断当前的顺序表是不是满的!

*

* @return true:满 false代表空

*/

public boolean isFull() {

if(usedSize==DEFAULT_SIZE) return true;

else return false;

}

private boolean checkPosInAdd(int pos) {

return true;//合法

}

// 在 pos 位置新增元素

public void add(int pos, int data) {

if(isFull()) return;

for(int i=usedSize;i>pos;i--){

elem[i]=elem[i-1];

}

elem[pos]=data;

usedSize++;

}

// 判定是否包含某个元素

public boolean contains(int toFind) {

for (int i = 0; i < usedSize; i++) {

if(elem[i]==toFind) return true;

}

return false;

}

// 查找某个元素对应的位置

public int indexOf(int toFind) {

for (int i = 0; i < usedSize; i++) {

if(elem[i]==toFind) return i;

}

return -1;

}

// 获取 pos 位置的元素

public int get(int pos) {

if(isEmpty()) return -1;

if(pos>=usedSize||pos<0) return -1;

return elem[pos];

}

private boolean isEmpty() {

if(elem==null) return true;

return false;

}

// 给 pos 位置的元素设为【更新为】 value

public void set(int pos, int value) {

if(isEmpty()) return ;

if(pos>=usedSize||pos<0) return ;

elem[pos]=value;

}

/**

* 删除第一次出现的关键字key

*

* @param key

*/

public void remove(int key) {

int i=indexOf(key);

if(i==-1) return;

for(;i<usedSize-1;i++){

elem[i]=elem[i+1];

}

usedSize--;

}

// 获取顺序表长度

public int size() {

return usedSize;

}

// 清空顺序表

public void clear() {

elem=null;

usedSize=0;

}

}

检验代码功能

main方法如下:

public static void main(String[] args) {

MyArraylist l=new MyArraylist();

l.add(1);

l.add(2);

l.add(3);

l.add(0,1);

l.add(3,2);

System.out.print("插入后的顺序表 : ");

l.display();

l.remove(2);

System.out.print("删除第一个2:");

l.display();

System.out.println("是否包含5: "+ l.contains(5));

System.out.println("是否包含3: "+ l.contains(3));

l.clear();

System.out.print("清空后的链表: ");

l.display();

}

运行结果显示如下:

在这里插入图片描述

这篇文章到这里就结束了,希望对你有所帮助!



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。