线性表的顺序存储结构java实现

1. 对线性表的抽象数据类型Data部分进行java实现

  • 确定数据类型Object
  • 实现顺序存储结构:用数组
代码:
package com.linear; //一个数据结构类 public class SqList { //成员变量:顺序存储结构的三个描述属性:1.最大长度 2.首地址值 3.当前长度 public final int MAXSIZE; public Object[] Data; public int length; //成员方法:必有构造函数,其余操作在另一个类定义 //没有无参构造:因为新建线性表必须定义最大长度 //有参构造1:无初始值 public SqList(int MAXSIZE){ this.MAXSIZE = MAXSIZE; this.length = 0; Data = https://www.it610.com/article/new Object[MAXSIZE]; } //有参构造2:有初始值,初始值为一串数组 public SqList(int MAXSIZE,int length,Object[] Data) { this.MAXSIZE = MAXSIZE; this.length = length; //初始数组的地址值被赋予成员变量 this.Data = Data; } }

2.对Operation部分进行Java实现 【线性表的顺序存储结构java实现】只实现了创建、插入、获取方法
代码:
package com.linear; public class SqListOp { public static void main(String[] arg0) { //实例一个操作线性表顺序存储的方法集合对象 SqListOp Op = new SqListOp(); //创建长度为10的空线性表 SqList L1 = Op.initSq(10); //插入元素 Op.insertSq(L1, "pu", 1); //拿到元素 String a = (String)Op.getSq(L1, 1); System.out.println(a); } //不需要写成员变量,因为这是方法的集合,是对很多SqList对象操作的 /** * 1.思考方法返回类型 * 2.思考传入何种参数 * 3.思考抛出异常 * 4.最后实现方法 * @param size:传入创建的线性数据长度 * @return 创建的数据结构 */ public SqList initSq(int size) { if(size < 0 || size == 0) { return null; } SqList L = new SqList(size); return L; } /** * 插入数据 * @param L:插入哪个数组 * @param inData:插入的数据值 * @param i:插入的位置 * @return 返回状态 */ public int insertSq(SqList L,Object inData,int i) { //抛出异常 if(i<1 || i>L.length+1 ||i>L.MAXSIZE || L.length+1>L.MAXSIZE) { return 0; } //数组元素从i位置都后移一位:“后移意味着需要先存最后一个元素到临时存储区” for(int m = L.length-1; m >= i-1 ; m = m-1) { L.Data[m+1] = L.Data[m]; } //插入数据到 L.Data[i-1] = inData; //数组长度增1 L.length = L.length + 1; return 1; } /** * 获取 * @param L * @param i * @return 返回获取的元素 */ public Object getSq(SqList L,int i){ //抛出异常 if(i<0 || i>L.length) { return 0; } //获取相应位置元素 Object Data = https://www.it610.com/article/L.Data[i-1]; return Data; } }

    推荐阅读