数据结构之顺序表与Java中的ArrayList、Vector

顺序表

1.什么是顺序表

顺序表是线性表的一种。
线性表的定义为:一种可以在任意位置进行插入和删除数据元素操作的,由n个相同类型数据元素 a 0 , a 1 , a 2 , ⋯   , a n − 1 a_{0},a_{1},a_{2},\cdots,a_{n-1} a0,a1,a2,,an1组成的线性结构。其数据元素满足除第一个元素和最后一个元素外,每个元素只有一个直接前驱和直接后继,第一个元素没有前驱元素,最后一个元素没有后继元素。
顺序表通常基于数组来实现,数组将顺序表的数据元素存储在一块连续地址空间的内存单元中。这样逻辑上相邻的元素在物理存储地址上也相邻,数据元素见逻辑上的前驱后继关系表现在数据元素存储单元的前后位置关系上。

2.顺序表的存储结构

顺序表存储结构
其中myArray为构造顺序表所依托的数组结构,maxSize为数组长度,也即顺序表的最大表长,而size为顺序表的实际表长。

3.顺序表类成员以及方法

通常对于一个数据结构最基本的操作即:插入,删除,修改,查找。 因而将顺序表成员及方法定义如下:

int maxSize;         //表最大长度
int size;         //表实际元素个数
Object[] MyArray;      //表依托的数组

public int size();         //求表中元素个数
public boolean isEmpty();    //判断表是否为空
public void insert();       //插入元素
public Objcet delete(int i) throws Exception;   //删除元素
public void setData(int i) throws Exception;    //修改元素
public Object getData(int i) throws Exception;   //查找元素

4.顺序表基本功能实现

public class myArrayList{
   
    private static final int defaultSize = 10;  //默认长度
    private int maxSize;
    private int size;
    private Object[] myArray;
    public myArrayList(){
   
        maxSize = defaultSize;
        size = 0;
        myArray = new Object[defaultSize];
    }

    public myArrayList(int size){
   
        maxSize = size;
        this.size = 0;
        myArray = new Object[size];
    }

    public int size() {
   
        return size;
    }

    public boolean isEmpty() {
   
        return size == 0;
    }

    public void insert(int i, Object obj) throws Exception{
   
        if (size == maxSize){
   
            throw new Exception("full");
        }
        if (i<0||i>size){
   
            throw new Exception("parameter error");
        }
        for (int j = size;j > i;j--){
      //插入位置后面的元素,从末尾开始依次往后移一个单位
            myArray[j] = myArray
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值