美文网首页大数据 爬虫Python AI Sql程序员
Java数据结构(一):线性表之开篇

Java数据结构(一):线性表之开篇

作者: locoder | 来源:发表于2017-02-14 15:06 被阅读0次

1、线性表

线性结构的特点是除第一个和最后一个数据元素外的每个数据元素只有一个前驱数据元素和一个后继数据元素。线性表是一个最简单的线性结构。线性表的操作特点主要是可以在任意位置插入和删除一个数据元素。线性表可以用顺序存储结构和链式存储结构存储。用顺序存储结构实现的线性表称作顺序表,用链式存储结构实现的线性表称作链表。链表主要有单链表,循环单链表和双向循环链表三种。顺序表和单链表各有优缺点,并且优缺点刚好相反。

1.1 线性表的定义

线性表是一种可以在任意位置进行插入和删除数据元素操作的由n(n>=0)个相同类型数据元素a0,a1,a2,....,an-1组成的线性结构。

1.2 线性表的接口定义

该接口名为List<T> 并且使用了泛型来指定对应类型。代码如下:

package datastructure.linear;
import datastructure.exception.StructureException;
/**
 * @Description 实现线性表结构的接口
 * @author mastery
 * @Date 2015年6月29日下午8:14:33
 * @param <T>
 */
public interface List<T> {
    /**
    * 在线性表指定位置插入元素t
    * @param index
    * @param t
    */
    void insert(int index , T t) throws StructureException;
    
    /**
    * 删除该线性表中指定位置的元素
    * @param index
    */
    void delete(int index) throws StructureException;
    
    /**
    * 获得该线性表中指定位置的元素
    * @param index
    * @return
    */
    T get(int index) throws StructureException;
    
    /**
    * 得到该线性表当前的存在多少个元素
    * @return
    */
    int size() throws StructureException;
    
    /**
    * 判断该线性表是否为空
    * @return
    */
    boolean isEmpty() throws StructureException;
}

并且在实现中自定义了一种异常StructureException.代码如下:

package datastructure.exception;

public class StructureException extends Exception{

    /**
     * 
     */
    private static final long serialVersionUID = 4187679158109073384L;

    public StructureException() {
        super();
    }

    public StructureException(String message, Throwable cause,
            boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }

    public StructureException(String message, Throwable cause) {
        super(message, cause);
    }

    public StructureException(String message) {
        super(message);
    }

    public StructureException(Throwable cause) {
        super(cause);
    }

}

1.3 线性表的抽象实现

该抽象类名为AbstractList<T>:对线性表进行抽象实现,实现了上述接口的两个方法,具体代码如下:

package datastructure.linear;

import datastructure.exception.StructureException;

public abstract class AbstractList<T> implements List<T>{
    
    /**
     * 结构的长度
     */
    protected int size;

    @Override
    public int size() throws StructureException {
        return size;
    }

    @Override
    public boolean isEmpty() throws StructureException {
        return size == 0;
    }
}

好了!我们已经定义好接口和抽象类了,下面我们来具体来谈谈实现了吧!

相关文章

  • Java数据结构(一):线性表之开篇

    1、线性表 线性结构的特点是除第一个和最后一个数据元素外的每个数据元素只有一个前驱数据元素和一个后继数据元素。线性...

  • Java工程师面试题

    JavaOOP Java的数据结构有哪些? 线性表(ArrayList) 链表(LinkedList) 栈(Sta...

  • 数据结构之线性表

    数据结构之线性表 1. 什么是线性表 线性表是一种最常用,最简单的一种数据结构。它是n个数据元素的有限序列。n 为...

  • Java数据结构和算法概览

    Java数据结构和算法概览 数据结构 线性数据结构:常见的有一维数组,线性表,栈,队列,双队列,串。 非线性数据结...

  • ArrayList源码学习(1)

    数据结构定义 从数据结构的角度来说,ArrayList是线性表基于java的顺序表示和实现,数据结构中定义其是一组...

  • 线性表的链式存储结构Java实现

    有了前面文章的铺垫:数据结构的基本理解线性表及其顺序存储结构的理解线性表的顺序存储结构java实现线性表链式存储就...

  • 重温:数据结构与算法 - 03数组

    数据结构与算法之美 - 数组 数据结构与算法之美-学习大纲 什么数组? 数组是一种 线性表 数据结构。它用一组 连...

  • 持续输出面试题之算法--线性表的查找

    开篇介绍 大家好,我是Java最全面试题库的提裤姐,今天这篇是数据结构与算法的第七篇,主要介绍查找中的线性表的查找...

  • 数据结构探险之线性表篇(上):顺序表

    数据结构探险之线性表篇 将要学到得: 线性表(链表) 什么是线性表? 线性表是n个数据元素的有限序列 排列之后成线...

  • 数据结构之线性表的链式存储结构

    之前写了线性表的顺序存储结构和有序线性表的顺序存储结构,今天接着写线性表的链式存储结构 数据结构之线性表的顺序存储...

网友评论

    本文标题:Java数据结构(一):线性表之开篇

    本文链接:https://www.haomeiwen.com/subject/jlwxwttx.html