线性表接口的实现_Java

线性表是其组成元素间具有线性关系的一种线性结构,对线性表的基本操作主要有插入、删除、查找、替换等,这些操作可以在线性表的任何位置进行。线性表可以采用顺序存储结构和链式存储结构表示。

本接口的类属于dataStructure包的linearList子包。线性表接口LList声明如下,描述线性表的取值、置值、插入、删除等基本操作。

package dataStructure.linearList;  
  
public interface LList<E>  
{  
    boolean isEmpty();                  //判断线性表是否为空,若空返回ture  
    int length();                       //返回线性表长度  
    E get(int index);                   //返回序号为index的对象,index初值为0  
    E set(int index,E element);         //设置序号为index对象为element,返回原对象  
    boolean add(int index,E element);   //插入element对象,插入后对象序号为index  
    boolean add(E element);             //插入element对象,插入位置没有约定  
    E remove(int index);                //移去序号为index的对象,放回被移去对象  
    void clear();                       //清空线性表  
}

顺序存储和链式存储的线性表类(顺序表类和链表类)实现LList接口,提供LList接口中方法的具体实现。例如:

public class SeqList<E> implements LList<E>             //顺序表类  
public class SinglyLinkedList<E> implements LList<E>    //单链表类

LList接口中的方法在顺序表类和链表类中表现出多态性。

时间: 2024-10-19 05:08:42

线性表接口的实现_Java的相关文章

线性表的顺序存储结构之顺序表类的实现_Java

在上一篇博文--线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构--顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放线性表的数据元素,元素在内存的物理存储次序与它们在线性表中的逻辑次序相同,即元素ai与其直接前驱ai-1及直接后继ai+1的存储位置相邻.顺序存储的线性表也成为顺序表(sequential list). 顺序表类SeqList提供线性表基于顺序存储结构的一种实现,它有两个私有成员变量table和n,

线性表—顺序表

引言(重点): 1.线性表的概述 2.线性表的抽象数据类型描述 3.线性表的实现方式 4.线性表的具体实现 5.每种具体实现的分析 1.什么是线性表?线性表(Linear List):由同类型元素构成有序序列的线性结构. 特征:1.表中元素个数称为线性表的长度2.线性表没有元素时,称为空表3.表起始位置称表头,表结束位置称为表尾4.在一个元素的前面的元素叫前驱元素,在一个元素后面的元素叫后继元素. 2.线性表的抽象数据类型描述 List MakeEmpty():初始化一个空线性表L;Elemen

线性表—双链表

1.基础知识 a.双链表结点的结构:其由前序元素地址,数据域,后继元素地址组成. b.双链表结点的连接方法:先声明该结点,可以在内部也可以利用其特性来表明前序结点和后继结点是什么,之后同时还需要说明"其前序结点的后继地址为该结点"和"其后继结点的前序地址为该结点.(本质:双向) 2.循环双链表的实现 线性表接口LList package com.clarck.datastructure.dlinked; /*** 线性表接口LList,描述线性表抽象数据类型,泛型参数T表示数

线性表—单链表

.1.链式存储结构实现 单链表和双链表(这边讲单链表). 2.基础概念 a.结点:结点由数据域和地址域(链)两部分组成.而结点整体在效果上可以看作是该结点的地址(指针).这个地址域一般是后继元素的地址(即下一个结点的总体).所以最后一个元素的地址域为^,其表示空,即没有后续元素.b.单链表:每个结点只有一个地址域的线性链表称为单链表.c.双链表:每个结点有两个地址域的线性表链称为双链表,两个地址域分别指向前驱元素和后继元素. 3.单链表的实现 线性表接口LList: package com.cl

线性表的链式存储和实现

上篇讲了顺序表,这篇接着讲讲链式表的实现. List.java 1 package com.yeyan.linklist; 2 3 /** 4 * 线性表接口 5 * @author yeyan 6 * @date 2014-12-07 7 * * API: 8 * isEmpty(): 判断该线性表是否为空 9 * length(): 表长 10 * get(int index): 获得第index的元素 11 * add(int index, T element): 在index位置之后添加

线性表顺序表示和实现

线性表是最基本.最简单.也是最常用的一种数据结构.线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的.线性表的逻辑结构简单,便于实现和操作.因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构. 线性表中比较重要的有顺序表.单向链表和循环链表.本文主要来谈谈顺序表的实现. List.java       线性表的接口类 1 package com.yeyan.linearlist; 2 3 /** 4 * 线性表接口 5 * @aut

C# 数据结构 线性表(顺序表 链表 IList 数组)

线性表 线性表是最简单.最基本.最常用的数据结构.数据元素 1 对 1的关系,这种关系是位置关系. 特点 (1)第一个元素和最后一个元素前后是没有数据元素,线性表中剩下的元素是近邻的,前后都有元素. (2)线性表中的元素是有限的(List),线性表中的数据类型一致. (3)线性表表示方法 L={a1,a2,a3,a4…….an},L=(D,R) (4)每一个元素都有前驱和后继,第一个元素只有后继,最后一个元素只有前驱. 实例 例如:1-100的整数是一个线性表 {“zhangsan”, “lis

数据结构之线性表实现

线性表接口List的定义如下: public interface List { Object Value(int pos); boolean add(Object obj,int pos); Object remove(int pos); int find(Object obj); boolean modify(Object obj,int pos); boolean isEmpty(); int size(); void forward(); void backward(); void cle

数据结构 Via C# (2) 顺序存储结构的线性表

上文讲了一些数据结构的基本概念,现在开始进入正题,今天学习最简单的线性表,线性表分为顺序存储结构和链式存储结构,本文讲顺序存储结构的线性表. 在C#的面向对象的世界中,我们一般都会对一个东西进行抽象,线性表的接口如下(只定义了一些最基本的操作,一些复杂的操作都是基于这些基本的操作组合实现的): /// <summary> /// c#线性表接口 /// </summary> public interface ICsharpList<T> { /// <summar