【数据结构】顺序表-创新互联

目录

创新互联公司主要业务有网站营销策划、网站设计、成都做网站、微信公众号开发、微信平台小程序开发、H5高端网站建设、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、成都营销网站建设资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。 

👀一.初识顺序表

👺二.顺序表表的实现

1. 顺序表用数组elem实现存放元素,以及usedSize来记录使用空间,可以自行设置默认容量大小。

2.在末尾新增元素add(int data)

3.在pos位置新增元素add(int pos ,int data)

4.判断是否包含某个元素contains(int toFind)

5.找到某元素对应位置indexOf(int toFind)

6.获取pos位置元素get(int pos)

7.给pos位置元素设置为value set(int pos, int value)

8.删除第一次出现的关键字toRmove remove(int toRmove)

9.获取顺序表长度 getSize()

10.清空顺序表clear()

整体代码展示


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

提前准备2个方法能封装尽量封装(当养成好习惯)一个扩容方法 一个判断是否已满

private void reSize(){
        this.elem=Arrays.copyOf(this.elem,2*this.elem.length);
    }
    public boolean isFull(){
        return usedSize == elem.length;
    }
1. 顺序表用数组elem实现存放元素,以及usedSize来记录使用空间,可以自行设置默认容量大小。
public class MyArrayList {
    public int[] elem;//用一个数组储存元素
    public int usedSize;// 记录已使用空间
    public static final int DEFAULT_SIZE=10; //给定默认空间大小
    public MyArrayList(){
        this.elem=new int[DEFAULT_SIZE];
    }
}
2.在末尾新增元素add(int data)
// 新增元素,默认在数组最后新增
    public void add(int data) {
        if (isFull()){
            reSize();
        }
        this.elem[usedSize]=data;
        usedSize++;
    }
3.在pos位置新增元素add(int pos ,int data)
public void add(int pos, int data) {
        checkIndex(pos);
        if (isFull()){
            reSize();
        }
        for (int i=usedSize-1;i>=pos;i--){
            elem[i+1]=elem[i];//从pos开始每个数往后挪一个位置
        }
        elem[pos]=data;
        usedSize++;
    }
private void checkGetIndex(int pos){
        if (pos>=usedSize||pos<0){
            throw new IndexOutOfBoundException("get元素时位置不合法");
        }
    }
4.判断是否包含某个元素contains(int toFind)
// 判定是否包含某个元素
    public boolean contains(int toFind) {
       for (int i=0;i
5.找到某元素对应位置indexOf(int toFind)
// 查找某个元素对应的位置
    public int indexOf(int toFind) {
        for (int i=0;i
6.获取pos位置元素get(int pos)
// 获取 pos 位置的元素
    public int get(int pos) {
    checkIndex(pos);
        return this.elem[pos]; }
private void checkIndex(int pos){
        if (pos>usedSize||pos<0){
            throw new IndexOutOfBoundException("add元素时位置不合法");
        }
    }
7.给pos位置元素设置为value set(int pos, int value)
// 给 pos 位置的元素设为 value
    public void set(int pos, int value) {
        checkIndex(pos);
        this.elem[pos]=value;
    }
8.删除第一次出现的关键字toRmove remove(int toRmove)
//删除第一次出现的关键字key
    public boolean remove(int toRemove) {
        if (indexOf(toRemove)==-1){
            System.out.println("没找到这个数");
            return false;
        }
        int index=indexOf(toRemove);
        for (int i=index;i
9.获取顺序表长度 getSize()
public int getSize() {
        return usedSize; }
10.清空顺序表clear()
// 清空顺序表
    public void clear() {
        usedSize=0;
    }
整体代码展示
import java.util.Arrays;

public class MyArrayList {
    public int[] elem;//用一个数组储存元素
    public int usedSize;// 记录已使用空间
    public static final int DEFAULT_SIZE=10; //给定默认空间大小
    public MyArrayList(){
        this.elem=new int[DEFAULT_SIZE];
    }
    // 新增元素,默认在数组最后新增
    public void add(int data) {
        if (isFull()){
            reSize();
        }
        this.elem[usedSize]=data;
        usedSize++;
    }
    private void reSize(){
        this.elem=Arrays.copyOf(this.elem,2*this.elem.length);
    }
    public boolean isFull(){
        return usedSize == elem.length;
    }
    // 在 pos 位置新增元素
    public void add(int pos, int data) {
        checkIndex(pos);
        if (isFull()){
            reSize();
        }
        for (int i=usedSize-1;i>=pos;i--){
            elem[i+1]=elem[i];
        }
        elem[pos]=data;
        usedSize++;
    }
    private void checkIndex(int pos){
        if (pos>usedSize||pos<0){
            throw new IndexOutOfBoundException("add元素时位置不合法");
        }
    }
    private void checkGetIndex(int pos){
        if (pos>=usedSize||pos<0){
            throw new IndexOutOfBoundException("get元素时位置不合法");
        }
    }
    // 判定是否包含某个元素
    public boolean contains(int toFind) {
       for (int i=0;i

本人第一次写博客,主要为学习记录使用,如有错误和不好的地方欢迎大家指出。

最后谢谢大家的阅读。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:【数据结构】顺序表-创新互联
网站地址:http://myzitong.com/article/dpcicp.html