package NodeList; public class ListStructs { final int MAXSIZE = 20; //存储空间分配量 Object data[]; //数组存储的数据元素,最大值为MAXSIZE static int length; //顺序表长度 /** * 初始化线性表 * @return 线性表长度 */ public void InitList() { data = new Object[MAXSIZE]; length = 0; } /** * 判断线性表是否为空 * @return 0为空,1为非空 */ public int ListEmpty() { if(length != 0){ return 1; } return 0; } /** * 把数组中的数据清空 * @return 0为清空 */ public int ClearList() { int size = length; while(size!=0){ data[size-1] = null; size--; } return 0; } /** * 将线性表中第i个位置元素值返回 * @param i 第i个位置 * @return e 第i个位置元素的值 */ public Object GetElem(int i) { Object e = data[i-1]; return e; } /** * 在线性表中查找与给定值e相等的元素 * @param e 给定值 * @return 如果查找成功则返回对应的序号,0代表失败 */ public int LocateElem(Object e) { for(int i=0; i<data.length-1; i++) { if(e==data[i]){ return i+1; } } return 0; } /** * 在线性表中第i个位置之前插入新的数据元素e * @param i 位置 * @param e 元素 * @return 1代表成功,0代表失败 */ public int ListInsert(int i, Object e) { if(i == MAXSIZE) { return 0; } if(i<1 || i>length+1) { return 0; } if(i<=length) { for(int k=length-1; k>=i-1; k--) { data[k+1] = data[k]; } } data[i-1] = e; length++; return 1; } /** * 删除线性表中第i个位置的元素,并返回删除的元素 * @param i 位置 * @return e 删除的元素 */ public Object ListDelete(int i) { Object e = null; if(i == MAXSIZE) { return 0; } if(i<1 || i>length+1) { return 0; } if(i<data.length) { e = data[i-1]; for (int k=i; k<length; k++) { data[k-1] = data[k]; } } data[length-1] = null; length--; return e; } /** * 返回线性表中元素的个数 * @return */ public int ListLength() { return length; } /** * 测试 * @param args */ public static void main(String[] args) { ListStructs ls = new ListStructs(); ls.InitList(); //初始化 //填入值 ls.ListInsert(1, "1"); ls.ListInsert(2, "2"); ls.ListInsert(3, "3"); ls.ListInsert(4, "4"); ls.ListInsert(5, "5"); ls.ListInsert(6, "6"); ls.ListInsert(7, "7"); ls.ListInsert(8, "8"); if(ls.ListEmpty() == 1){ System.out.println("线性表不为空:"); }else{ System.out.println("线性表为空:"); } //打印 for(int i = 1; i<=length; i++) { System.out.println(i+":"+ls.GetElem(i)); } //删除值 ls.ListDelete(4); //打印 for(int i = 1; i<=length; i++) { System.out.println(i+":"+ls.GetElem(i)); } //查询值为5的元素位置 System.out.println("值为\"5\"的元素在线性表位置为:"+ls.LocateElem("5")); //线性表长度 System.out.println("线性表长度为:"+ls.ListLength()); } }
相关推荐
链式存储结构线性表的java实现,全代码注释,通俗易懂
java实现线性表 java实现线性表 java实现线性表 java实现线性表 java实现线性表 java实现线性表
在给定的压缩包中,我们有两个.java文件:SeqList.java和LList.java,分别代表顺序表和链表两种线性表的实现方式。 1. **顺序表(SeqList.java)** - 顺序表是一种物理存储上连续的线性表,它的元素在内存中按顺序...
顺序线性表的JAVA实现代码,希望对学习数据结构的同学们有所帮助!
在Java中,我们通常使用数组或链表来实现线性表。本话题聚焦于使用动态数组来实现线性表,这是一种常见的数据结构实现方式,因为它既保留了数组的高效访问特性,又能灵活地调整大小以适应数据的变化。 动态数组,也...
顺序存储结构线性表的java实现代码,要在jdk1.6以上环境下运行
总结,"线性表实现源码-java"涉及到Java中对线性表两种常见存储结构——顺序存储(ArrayList)和链式存储(LinkedList)的实现,以及相关的基本操作。这些源码对于学习和理解数据结构及其在Java中的应用具有重要意义...
关于线性表的Java实现代码 有顺序表,带头结点的单链表的实现代码,顺序表里包含插入,删除,求数据元素个数,取数据元素,判断非空否,以及顺序表中删除第一个出现的数据元素x,以及把顺序表中所有等于x的数据元素...
本篇将深入探讨如何用链表来实现线性表,并通过提供的`ChainList.java`和`ListInterface.java`文件来理解其实现细节。 首先,线性表具有顺序访问的特点,其元素可以通过索引进行访问。链表是一种非连续存储结构,每...
Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;
在Java中,我们通常通过两种方式来实现线性表:数组和链表。下面将详细讨论这两种实现方式及其操作。 一、数组实现线性表 1. **数组定义**:在Java中,数组是最基本的线性数据结构,可以存储同一类型的元素。通过...
本课件主要是介绍数据结构中的线性表结构,从线性表的定义、存储方式以及基本操作的实现。本课件主要是使用java语言实现数据结构的描述和基本操作的实现。
在Java中,线性表可以使用数组或链表来实现。数组实现简单,但插入和删除操作效率较低;链表则可以灵活地进行插入和删除,但需要额外的存储空间来保存指针。 **单链表** 是线性表的一种链式存储结构,每个节点包含...
在Java中,线性表的实现通常包括两种主要方式:顺序表和链表。 **2.1 线性表的抽象数据类型** 线性表的抽象数据类型(Abstract Data Type, ADT)定义了线性表的基本操作。在Java中,我们可以定义一个名为`LList`的...
本项目以Java语言实现了多种线性表,包括表、队列和栈,下面我们将详细探讨这些概念及其实现方式。 1. **线性表**:线性表是最基本的数据结构之一,包含n(n>=0)个相同类型的元素,按特定顺序排列。它可以被抽象为...
在Java中实现线性表,我们可以利用数组或链表这两种方式。本项目提供了使用Java原生SDK实现的线性表,有助于深入理解和应用数据结构中的线性表概念。 首先,我们要了解线性表的基本操作。这些操作包括插入元素、...
在本资料中,我们将深入探讨线性表的实现,主要关注在Java环境下的插入和删除操作。 首先,我们来看"SqList.java"文件,这通常代表顺序表(Sequential List)的实现。顺序表是线性表的一种静态存储方式,它将所有...
"数据结构(Java版)-线性表的实现与应用完整版" 本文旨在通过Java实现线性表的基本操作,并应用于实际问题中。线性表是一种基本的数据结构,广泛应用于计算机科学和软件开发中。本文将通过两个部分来介绍线性表的...
在给定的文件名`VectorList.java`中,很可能包含了使用`Vector`类来实现线性表的示例代码。通常,这样的代码会定义一个类,类中包含一个`Vector`实例来存储元素,并提供方法来执行线性表的各种操作。可能的方法有`...