`
Fox_ed
  • 浏览: 3537 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

线性表的简单实现

    博客分类:
  • java
阅读更多
用Java写的一个线性表的简单实现
1、接口设计
package linearTable;
/**
 * 线性表的接口设计
 * @author fox
 *
 */
public interface LinearList {

	public boolean isEmpty();
	public int size();
	public Object get(int index);
	public void set(int index,Object e);
	public boolean add(int index, Object o);
	public boolean add(Object o);
	public Object remove(int index);
	public void clear();
}

2、实现类
package linearTable;
/**
 * 线性表的实现
 * @author fox
 *
 */
public class LinearListImple implements LinearList {
	private Object[] slist;
	private int size;

	public LinearListImple() {
		this(10);
	}
	
	public LinearListImple(int length) {
		if(length == 0) {
			this.slist = new Object[10];
		}
		this.slist = new Object[length];
	}
	
	public boolean isEmpty() {
		if(size == 0) {
			return true;
		} else {
			return false;
		}
	}

	public int size() {
		return size;
	}

	public Object get(int index) {
		return (Object)slist[index];
	}

	public void set(int index, Object o) {
		checkIndex(index);
		slist[index] = o;
	}

	public boolean add(int index, Object o) {
		checkIndex(index);
		if(size == slist.length) {
			Object[] temp = slist;
			this.slist = new Object[temp.length * 2];
			for(int j = 0; j < temp.length; j++) {
				this.slist[j] = temp[j];
			}
		}
		for(int i = size - 1; i >= index; i--) {
			slist[i+1] = slist[i];
		}
		slist[index] = o;
		size++;
		return true;
	}

	public boolean add(Object o) {
		return add(size,o);
	}

	public Object remove(int index) {
		checkIndex(index);
		Object temp = (Object)slist[index];
		for(int i = index; i <= size - 2; i++) {
			slist[i] = slist[i+1];
		}
		slist[size - 1] = null;
		size--;
		return temp;
	}

	public void clear() {
		if(size != 0) {
			for(int i = 0; i < size; i++) {
				slist[i] = null;
			}
			size = 0;
		}
	}
	
	private void checkIndex(int index) {
		if(index > size || index < 0) {
			throw new IndexOutOfBoundsException("下标超出当前线性表长度!"+size);
		}
	}

}

个中不足,望大家指出。
分享到:
评论

相关推荐

    线性表的实现实验报告

    简单明了的介绍了线性表以及设计一些算法解决两道算法问题。

    线性表简单实现

    实现了线性表的链式存储方式,并有增删查改的功能。

    数据结构之线性表的实现.rar

    数据结构之线性表的实现,参照数据结构严蔚敏版进行开发,对代码进行修改可以进行更简单的操作。基于VS2010,可直接运行。

    线性表简单的C语言实现

    线性表简单的C语言实现

    顺序线性表实现代码

    线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,...线性表的逻辑结构简单,便于实现和操作。 该资源是顺序线性表的C语言实现代码

    线性表及其实现

    线性表及其实现,通过一些常见的例子,用C语言完成线性表的实现。这是ppt的pdf版本,例子简单但十分高效。

    线性表简单自然连接

    本程序可实现任意两个线性表的简单自然连接,根据所根据的连接条件进行连接。

    Java 实现线性表

    用Java 实现的线性表的一些操作。线性表实现其实很简单,类似操作数组,只是添加删除时要注意下。

    线性表实现源码-java

    java实现的简单线性表结构,包含顺序存储结构和单向链式存储结构的源码

    线性表顺序存储结构实现通讯录

    C++数据结构 线性表顺序存储结构实现通讯录

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

    线性表,单链表,栈的代码实现,java简单实现,内附有代码少许注释

    实验一终稿_基本操作_C++_线性表_

    根据线性表的抽象数据类型的定义,选择下面任一种链式结构实现线性表,并完成线性表的基本功能。线性表存储结构(五选一):1、 带头结点的单链表2、 不带头结点的单链表3、 循环链表4、 双链表5、 静态链表线性表的...

    线性表的顺序存储API实现以及测试函数

    第一个接触的一般就是线性表了,线性表虽然简单,但他起到了一个敲门砖的作用,理解并掌握了线性表在慢慢学习更高级的数据结构就可以慢慢入门了,在此,把线性表的顺序存储结构,API实现及测试函数上传,配套我的...

    实验一 线性表的顺序存储实验

    一,实验目的 1,掌握用Visual C++6.0上机调试顺序表的基本方法 2,掌握顺序表的基本操作,插入,删除,查找,以及有序顺序表的合并等算法的实现 ...[实现提示] 要实现基本操作,可用实现的基本操作,也可设计简单的算法实现.

    线性表操作(链式结构)

    线性表操作(链式结构),已在acm上通过,简单易懂

    数据结构——线性表

    该文件包括各种线性表的头文件,另外还实现了简单单链表、简单顺序线性表、从A链表中删除B和C链表共有的元素、单链表逆置(以整数为例)、将链表中元素按递增排序并删除所选定范围内的元素、求一个新的集合A为A和B的...

    数据结构学习--线性表及其应用--顺序表

    本程序主要目的在于帮助同学熟练掌握线性表的基本 操作在顺序存储结构上的实现,顺序表的优点是可以实现随机存取,用数组对其进行定义, 主要操作时针对数组下标的运算。本实验相对比较简单,通过本实验,对顺序表...

    数据结构-线性表

    自己实现的线性表数据结构,包括顺序结构和链式存储结构。由于比较简单就不用多说了。main函数中有少许测试,其它的也测试过了。

    数据结构——线性表(选择题).docx

    简单,线性表顺序存储实现,02702003 [单选题] A、n-i(正确答案) B、n-i+1 C、n-i-1 D、i 3.线性表采用链式存储时,其地址()。 简单,线性表的链式存储原理,02702004 [单选题] A、必须是连续的 B、一定是不连续...

    C语言手机通讯录应用(线性表).cpp

    基于C语言的手机通讯录的应用,御用简单的数据结构知识(线性表),可以作为学习的参考

Global site tag (gtag.js) - Google Analytics