服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java 精炼解读数据结构的顺序表如何操作

Java 精炼解读数据结构的顺序表如何操作

2022-09-22 14:15K媾‍ Java教程

程序中经常需要将一组数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化,顺序表则是将元素顺序地存放在一块连续的存储区里,元素间的顺序关系

前言

线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见 的线性表:顺序表、链表、栈、队列、字符串... 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储 时,通常以数组和链式结构的形式存储。

 

一、什么是顺序表

 

顺序表的概念及结构

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改 

 其实就是一个数组。那为什么还要写一个顺序表,直接用数组不就好了?不一样的,写到类里面就可以面向对象。

 

创建顺序表

Java 精炼解读数据结构的顺序表如何操作

public class MyArrayList {
   public int[] elem;//数组
   public int usedSize;//数据的有效个数
 
   public MyArrayList(){
       this.elem = new int[10];
   }
}

打印顺序表

Java 精炼解读数据结构的顺序表如何操作

Java 精炼解读数据结构的顺序表如何操作

 打印结果:

Java 精炼解读数据结构的顺序表如何操作

因为display是根据usedsize打印的, usedsize没赋值所以什么也不打印。

 

获取顺序表长度

Java 精炼解读数据结构的顺序表如何操作

 

在pos位置新增元素

在顺序表里面插入元素的时候所插入的位置的前面一定是存放了元素的,

画图分析:

Java 精炼解读数据结构的顺序表如何操作

代码如下:

// 在 pos 位置新增元素
    public void add(int pos, int data) {
       if(pos < 0 || pos > usedSize){
           System.out.println("pos位置不合法");
           return;
       }
       if(isFull()){
           this.elem = Arrays.copyOf(this.elem,this.elem.length*2);
       }
        for (int i = this.usedSize-1; i >=pos ; i--) {
            this.elem[i+1] = this.elem[i];
        }
        this.elem[pos] = data;
        
        this.usedSize++;
        
    }
 
    public boolean isFull(){
       return this.usedSize == this.elem.length;
    }

打印结果:

Java 精炼解读数据结构的顺序表如何操作

 

判定是否包含某个元素

// 判定是否包含某个元素
    public boolean contains(int toFind) {
        for (int i = 0; i < this.usedSize; i++) {
            if (this.elem[i] == toFind) {
                return true;
            }
        }
        return false;
    }

打印结果:

Java 精炼解读数据结构的顺序表如何操作

 

查找某个元素对应的位置

 // 查找某个元素对应的位置
    public int search(int toFind) {
        for (int i = 0; i <this.usedSize ; i++) {
            if(this.elem[i] == toFind){
                return i;
            }
        }
       return -1; 
   }

打印结果:

Java 精炼解读数据结构的顺序表如何操作

 

获取 pos 位置的元素

 // 获取 pos 位置的元素
    public int getPos(int pos) {
       if(pos < 0 || pos > this.usedSize){
           System.out.println("pos位置不合法");
           return -1;//所以,这里说明一下,业务上的处理,这里不考虑
       }
       if (isEmpty()){
           System.out.println("顺序表为空");
           return -1;
       }
       return this.elem[pos];
 
    }
    public boolean isEmpty(){//判断为不为空的情况下
       return this.usedSize == 0;
    }

打印结果:

Java 精炼解读数据结构的顺序表如何操作

 

给 pos 位置的元素设为 value

   // 给 pos 位置的元素设为 value
    public void setPos(int pos, int value) {
        if (pos < 0 || pos > this.usedSize) {
            System.out.println("pos位置不合法");
            return ;
        }
        if (isEmpty()) {
            System.out.println("顺序表为空");
            return;
        }
         this.elem[pos] = value;
    }
    public boolean isEmpty() {//判断为不为空的情况下
        return this.usedSize == 0;
    }

 打印结果:

Java 精炼解读数据结构的顺序表如何操作

 

删除你想要删除的元素

//删除第一次出现的关键字key
public void remove(int toRemove) {
   if(isEmpty()){
       System.out.println("顺序表为空");
       return;
   }
   int index = search(toRemove);//查找要删除元素对应的位置
   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--;
 
}

打印结果:

Java 精炼解读数据结构的顺序表如何操作

 

总结:

本文简单介绍了数据结构的顺序表,如何创建顺序表,顺序表上如何操作数据。通过简单例题的方式加深对顺序表的理解。上述就是今天的内容,有任何疑问的话可以随时私信我,文章哪里出现了问题我都会积极改正,也希望大家能更快的掌握自己想要的知识,让我们一起加油!!!!!

到此这篇关于Java 精炼解读数据结构的顺序表如何操作的文章就介绍到这了,更多相关Java 数据结构的顺序表内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/m0_64397675/article/details/123393526

延伸 · 阅读

精彩推荐