Java数据结构(二)

二、线性表(1)

1、线性表的定义

线性表是由n个类型相同的数据元素组成的有限序列,n是线性表的元素个数,也称线性表的的长度;若n=0,则称空表,线性表使用序号确定数据元素在线性表的逻辑次序,即表示数据元素之间的顺序关系;

2、线性表的顺序存储结构

(1)数组:存储具有相同数据类型的元素集合,是一种构造数据类型。

​ a[i]的地址计算:

​ 第i个元素的地址a[i]地址 = 数组a的首地址 + 元素字节数*i ;

​ 数组一旦占用一片存储空间,其地址和容量就是确定的,不可更改;

(2)顺序表:线性表的顺序存储结构称为顺序表,它使用一维数组一次存放线性表的数据元素;

(3)顺序表的声明,操作;声明SeqList顺序表类,有两个保护权限的成员变量element和n。element数组存放数据元素,n表示顺序表元素个数,约定数据元素不能是空对象(null),Java语言约定文件名同类名;

package SeqList_T;

public class SeqList {
    protected int n;
    protected int[] element;
    private static final int MIN_CA = 16;

    public SeqList(int length){         //构造空表,length指定容量;
        if (length < MIN_CA){
            length = MIN_CA;
            this.element = new int[length];     //申请元素空间,元素为null;
            this.n = 0;
        }
    }
    public SeqList(){       //创建默认容量的空表,构造方法重载;
        this(MIN_CA);
    }
    
    public SeqList(int[] values){       //使用数组构造顺序表,由values提供数据元素
        this(values.length*2);
        for (int i = 0; i < values.length; i++)
            this.element[this.n++] = values[i];
    }
    public boolean isEmpty(){   // 判空
        return this.n == 0;
    }
    public int size(){          //返回元素个数
        return this.n;
    }
    public int get(int i){   //返回第i个元素;
        if (i > 0 && i < this.n)
            return this.element[i];
        return -1;
    }
    public void set(int i,int x){
        if (i > 0 && i < this.n)
            this.element[i] = x;
        else System.out.println("下标越界!");
    }  
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值