首页 > 代码库 > 线性表的Java实现--顺序存储
线性表的Java实现--顺序存储
线性表的Java实现--顺序存储
线性表(Linear List)是由n(n≥0)个数据元素(结点)a[0],a[1],a[2]…,a[n-1]组成的有限序列。
其中:
- 数据元素的个数n定义为表的长度 = "list".length() ("list".length() = 0(表里没有一个元素)时称为空表)
- 将非空的线性表(n>=0)记作:(a[0],a[1],a[2],…,a[n-1])
- 数据元素a[i](0≤i≤n-1)只是个抽象符号,其具体含义在不同情况下可以不同
一个数据元素可以由若干个数据项组成。数据元素称为记录,含有大量记录的线性表又称为文件。这种结构具有下列特点:
线性结构的基本特征为:
1.集合中必存在唯一的一个“第一元素”;
2.集合中必存在唯一的一个 “最后元素” ;
3.除最后一个元素之外,均有 唯一的后继(后件);
4.除第一个元素之外,均有 唯一的前驱(前件)。
简单结束线性表的基础知识后,下面分别实现顺序存储的线性表和链式存储的线性表。
下面的程序分别实现了顺序存储线性表的初始化、获取线性表长度、获取指定索引处元素、根据值查找、插入、删除、清空等操作。
顺序存储插入操作:
顺序存储删除操作:
顺序存储的Java实现
package com.liuhao.algorithm; import java.util.Arrays; public class SequenceList<T> { private final int DEFAULT_SIZE = 16; private int capacity;// 保存数组的长度 private Object[] elementData; // 定义一个数组,用于保存顺序线性表 private int size = 0;// 保存顺序线性表中当前元素的个数 // 以默认长度创建空的线性表 public SequenceList() { capacity = DEFAULT_SIZE; elementData = http://www.mamicode.com/new Object[capacity];>
测试代码:
package com.liuhao.test; import org.junit.Test; import com.liuhao.algorithm.SequenceList; public class SequeceListTest { @Test public void test() { SequenceList<String> sList = new SequenceList<String>(); //添加元素 sList.add("我"); sList.add("is"); sList.add("hehe"); System.out.println(sList); //指定位置插入 sList.insert("xxx", 3); System.out.println(sList); //指定位置删除 sList.delete(2); System.out.println(sList); //获取元素位置 System.out.println("“我”在其中的位置:" + sList.indexOf("我")); //清空 sList.clear(); System.out.println(sList); } }
代码获取地址:https://github.com/liuhao123/JavaMore.git
- 大小: 18.7 KB
- 大小: 17.4 KB
- 查看图片附件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。