`
jkbjxy
  • 浏览: 83961 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

线性表实现(JAVA)

阅读更多
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实现线性表 java实现线性表

    java实现线性表

    在给定的压缩包中,我们有两个.java文件:SeqList.java和LList.java,分别代表顺序表和链表两种线性表的实现方式。 1. **顺序表(SeqList.java)** - 顺序表是一种物理存储上连续的线性表,它的元素在内存中按顺序...

    顺序线性表的JAVA实现代码

    顺序线性表的JAVA实现代码,希望对学习数据结构的同学们有所帮助!

    用Java动态数组扩充实现线性表

    在Java中,我们通常使用数组或链表来实现线性表。本话题聚焦于使用动态数组来实现线性表,这是一种常见的数据结构实现方式,因为它既保留了数组的高效访问特性,又能灵活地调整大小以适应数据的变化。 动态数组,也...

    顺序线性表的java实现代码

    顺序存储结构线性表的java实现代码,要在jdk1.6以上环境下运行

    线性表实现源码-java

    总结,"线性表实现源码-java"涉及到Java中对线性表两种常见存储结构——顺序存储(ArrayList)和链式存储(LinkedList)的实现,以及相关的基本操作。这些源码对于学习和理解数据结构及其在Java中的应用具有重要意义...

    数据结构-线性表-Java代码实现

    关于线性表的Java实现代码 有顺序表,带头结点的单链表的实现代码,顺序表里包含插入,删除,求数据元素个数,取数据元素,判断非空否,以及顺序表中删除第一个出现的数据元素x,以及把顺序表中所有等于x的数据元素...

    用链表实现线性表java

    本篇将深入探讨如何用链表来实现线性表,并通过提供的`ChainList.java`和`ListInterface.java`文件来理解其实现细节。 首先,线性表具有顺序访问的特点,其元素可以通过索引进行访问。链表是一种非连续存储结构,每...

    Java开发-线性表

    Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;Java开发线性表;

    Java 实现线性表

    在Java中,我们通常通过两种方式来实现线性表:数组和链表。下面将详细讨论这两种实现方式及其操作。 一、数组实现线性表 1. **数组定义**:在Java中,数组是最基本的线性数据结构,可以存储同一类型的元素。通过...

    数据结构第二章 线性表(java版)

    本课件主要是介绍数据结构中的线性表结构,从线性表的定义、存储方式以及基本操作的实现。本课件主要是使用java语言实现数据结构的描述和基本操作的实现。

    线性表,单链表,栈 java实现

    在Java中,线性表可以使用数组或链表来实现。数组实现简单,但插入和删除操作效率较低;链表则可以灵活地进行插入和删除,但需要额外的存储空间来保存指针。 **单链表** 是线性表的一种链式存储结构,每个节点包含...

    JAVA线性表JAVA线性表JAVA线性表

    在Java中,线性表的实现通常包括两种主要方式:顺序表和链表。 **2.1 线性表的抽象数据类型** 线性表的抽象数据类型(Abstract Data Type, ADT)定义了线性表的基本操作。在Java中,我们可以定义一个名为`LList`的...

    数据结构线性表的各种实现

    本项目以Java语言实现了多种线性表,包括表、队列和栈,下面我们将详细探讨这些概念及其实现方式。 1. **线性表**:线性表是最基本的数据结构之一,包含n(n&gt;=0)个相同类型的元素,按特定顺序排列。它可以被抽象为...

    java编写的线性表

    在Java中实现线性表,我们可以利用数组或链表这两种方式。本项目提供了使用Java原生SDK实现的线性表,有助于深入理解和应用数据结构中的线性表概念。 首先,我们要了解线性表的基本操作。这些操作包括插入元素、...

    数据结构与算法分析--线性表实现

    在本资料中,我们将深入探讨线性表的实现,主要关注在Java环境下的插入和删除操作。 首先,我们来看"SqList.java"文件,这通常代表顺序表(Sequential List)的实现。顺序表是线性表的一种静态存储方式,它将所有...

    数据结构(Java版)-线性表的实现与应用完整版.doc

    "数据结构(Java版)-线性表的实现与应用完整版" 本文旨在通过Java实现线性表的基本操作,并应用于实际问题中。线性表是一种基本的数据结构,广泛应用于计算机科学和软件开发中。本文将通过两个部分来介绍线性表的...

    用Java Vector向量实现线性表

    在给定的文件名`VectorList.java`中,很可能包含了使用`Vector`类来实现线性表的示例代码。通常,这样的代码会定义一个类,类中包含一个`Vector`实例来存储元素,并提供方法来执行线性表的各种操作。可能的方法有`...

Global site tag (gtag.js) - Google Analytics