首先写一个顺序表类,在类中定义一个长度为6的顺序表
private int[]arr=new int[5];
private int x =0;
public int getX(){
return x;
先是打印顺序表对数组进行遍历,在进行打印
public void display(){
System.out.print("[");
for (int i = 0; i< x; i++){
System.out.print(arr[i]);
if (i!= x -1){
System.out.print(" "+",");
}
}
System.out.print("]");
}
之后使在pos位置插入值,先判断数组范围,这里写了一个扩容的方法
public void add(int pos,int data){
if (pos<0||pos> x){
return;
}
if (x >=arr.length){
enlargeArr(arr);
}
if (pos== x){
arr[x]=data;
x++;
}else {
for (int i = x; i>pos; i--){
arr[i]=arr[i-1];
}
arr[pos]=data;
x++;
}
}
接下来是写查找是否包含某个元素依旧是遍历的方法
public boolean contains(int toFind){
for (int i=0;i<x;i++){
if (arr[i]==toFind){
return true;
}
}
return false;
}
同样用遍历查找元素的位置
public int search (int toFind){
for (int i=0;i<arr.length;i++){
if (toFind==arr[i]){
return i;
}
}
return -1;
}
下面展示整个代码的详细过程
package test;
import java.util.Arrays;
public class ShunXuBiao {
private int[]arr=new int[5];
private int x =0;
public int getX(){
return x;
}
//打印顺序表
public void display(){
System.out.print("[");
for (int i = 0; i< x; i++){
System.out.print(arr[i]);
if (i!= x -1){
System.out.print(" "+",");
}
}
System.out.print("]");
}
//在pos位置新增元素
public void add(int pos,int data){
if (pos<0||pos> x){
return;
}
if (x >=arr.length){
enlargeArr(arr);
}
if (pos== x){
arr[x]=data;
x++;
}else {
for (int i = x; i>pos; i--){
arr[i]=arr[i-1];
}
arr[pos]=data;
x++;
}
}
//判断是否包含某个元素
public boolean contains(int toFind){
for (int i=0;i<x;i++){
if (arr[i]==toFind){
return true;
}
}
return false;
}
//查找某个元素对应的位置
public int search (int toFind){
for (int i=0;i<arr.length;i++){
if (toFind==arr[i]){
return i;
}
}
return -1;
}
//获取pos位置的元素
public int getpos(int pos){
return arr[pos];
}
//给pos位置元素设置为value
public void setpos(int pos,int value){
if (pos<0||pos>=x){
return;
}
arr[pos]=value;
}
//删除第一次出现的关键字key
public void remove(int toRemove){
int pos=search(toRemove);
if (pos==x-1){
x--;
}
for (int i=pos;i<x-1;i++){
arr[i]=arr[i+1];
}
x--;
}
//获取顺序表长度
public int size(){
return x;
}
//清空顺序表
public void clear(){
x=0;
}
private void enlargeArr(int[] arr){
int[] arrs=new int[arr.length+arr.length];
arrs= Arrays.copyOf(arr,arr.length+arr.length);
this.arr=arrs;
}
}
当然还得有一个测试的代码啦
话不多说直接上代码
import test.ShunXuBiao;
public class Test1 {
public static void main(String[] args) {
ShunXuBiao shunXuBiao=new ShunXuBiao();
shunXuBiao.add(0,1);
shunXuBiao.add(1,3);
shunXuBiao.add(2,5);
shunXuBiao.add(3,7);
shunXuBiao.add(4,9);
shunXuBiao.add(5,0);
System.out.println("当前线性表为:");
shunXuBiao.display();
System.out.println();
System.out.println("3在线性表里面?"+shunXuBiao.contains(3));
System.out.println("2在线性表里面?"+shunXuBiao.contains(2));
System.out.println("寻找9的位置"+shunXuBiao.search(9));
System.out.println("第3位置上的数据是:"+shunXuBiao.getpos(3));
System.out.println("删除9之前");
shunXuBiao.display();
shunXuBiao.remove(9);
System.out.println("删除9之后");
shunXuBiao.display();
System.out.println();
System.out.println("线性表的有效长度"+shunXuBiao.size());
System.out.println("清空线性表");
shunXuBiao.clear();
}
}
给大家展示一下结果吧 嘿嘿

本文深入探讨了使用Java实现顺序表的基本操作,包括插入、查找、删除等关键功能,并通过具体示例展示了如何利用这些操作来管理和操作数据。文章还介绍了顺序表的扩容机制,以应对数据量增加的情况。
1475

被折叠的 条评论
为什么被折叠?



