线性表(顺序表)

 日升时奋斗,日落时自省

目录

一、顺序表

1. 我们首先写的是一个打印方法,这里打印(display)

 2.计算数组中有效数值的个数(size)

4. 在任意位置增一个元素(add)

5.包含某个元素(contain)

 6.寻找某一元素的下标

7.获取pos当前位置元素(get)

 8.改变pos位置的元素

 9.删除第一次出现的数值toRemove

 10.最后也就是如何清空当前顺序表


一、顺序表

顺序表示数据结构的一种,在java中有专属自己的库函数来写顺序表了,但是我们应该做到能够知道顺序表是什么样子,库函数中的顺序表很多,可以自己去看一下,简单了解

常了解到的就是增、删、查、改,那我们就来写一下

普通情况下数组是不能随便加减的,或更改位置

这里我们就需要实现一个类,来填写方法,实现数组的改动

创建一个类,先定义一个数组,构造方法接收我们需要传进来的数组数组在这里开几个都可以,之后在增、改的时候会进行扩容处理

 

 接下来我就需要写顺序表需要调用的方法了,满足当下我们的需求,需求无非就是增删改除已经其扩展,以下就是当前需要的模板

public void display() {
        
    }
    // 新增元素,默认在数组最后新增
    public void add(int data) {
        
    }
    // 在 pos 位置新增元素
    public void add(int pos, int data) { 
        
    }
// 判定是否包含某个元素
    public boolean contains(int toFind) {
        return true; 
    }
    // 查找某个元素对应的位置
    public int indexOf(int toFind) { 
        return -1; 
    }
    // 获取 pos 位置的元素
    public int get(int pos) {
        return -1;
    }
    // 给 pos 位置的元素设为 value
    public void set(int pos, int value) { 
        
    }
    //删除第一次出现的关键字key
    public void remove(int toRemove) { 
        
    }
    // 获取顺序表长度
    public int size() {
        return 0;
    }
    // 清空顺序表
    public void clear() { 
        
    }

1. 我们首先写的是一个打印方法,这里打印(display)

思路:for循环遍历每一个数组值,最后在进行换行,保持美观

 2.计算数组中有效数值的个数(size)

简单提一下:(计算很简单)

这步出来的时候,我们能将打印函数的数组长度那一项换下来 

3.添加方法,直接添加最后一位(add)

(1)首先当前数组是否满了

(2)如果满了进行扩容

(3)再添加数值

 

4. 在任意位置增一个元素(add)

限制条件:

(1)数组不能是满的

(2)传进来的数字不能小于0吧,下标最小也就是0了,-1可以吗,当然不可以

(3)还有呢,也就是不容易想到的,数字是不能跳着加的(意思就是一共只有3个数字,但是我就是想加到第5个数字的位置上,中间空出一个4位置是不行的)图解

 

 

 异常可以简单写:

 有一个可以传值接收就好

5.包含某个元素(contain)

思路:遍历数组找有没有相等的

 6.寻找某一元素的下标

与5相同

返回值变成下标位置就可以了 

7.获取pos当前位置元素(get)

(1)首先注意该数组是否就是空的

(2)该数组当前pos是否越界了

(3)查找当前pos的位置

 8.改变pos位置的元素

(1)首先注意该数组是否就是空的

(2)该数组当前pos是否越界了(是在有效数字范围内)

(3)查找当前pos的位置,改变元素

 9.删除第一次出现的数值toRemove

(1)判断是否为空

(2)可以放入查找方法中直接找,if判断是否可以往下进行

(3)最后在进行压缩数组,从当前位置的数组向前覆盖就可以了

 10.最后也就是如何清空当前顺序表

 为什么这样清楚呢,虽然里面的数组值还在,但是我们值根据当前有效值进行变化,这里只要将有效值清为0就可以了

如果是引用类型的呢,引用类型最后清楚所有是要置空的:

 当前我是引用类型清空时的操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值