首页 > 代码库 > 线性表的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
  • 查看图片附件