用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);
}
}
}
个中不足,望大家指出。
分享到:
相关推荐
根据给定的文件信息,我们可以总结出以下关于“线性表简单实现”的IT知识点: ### 线性表与链式存储 线性表是一种基本的数据结构,它由相同类型的数据元素组成,这些数据元素之间存在着一对一的顺序关系。线性表的...
### 线性表的实现知识点详解 #### 一、线性表的概述与存储方式 线性表是计算机科学中最基本的一种数据结构之一,它由相同类型的数据元素构成,这些元素之间存在着一种先后关系。根据存储方式的不同,线性表可以分为...
### 数据结构-线性表及其实现 #### 知识点概述 本篇文章将围绕“数据结构中的线性表及其实现”这一主题展开,详细探讨线性表的基本概念、特性以及不同场景下的实现方式。文章通过举例说明了多项式表示问题,并以此...
本项目提供了一个简单的基于线性表实现的通讯录管理系统,涵盖了基本的数据结构操作和C++编程实践。通过对该项目的学习,可以帮助初学者更好地理解线性表的工作原理以及如何在实际应用中使用线性表。此外,该项目还...
3. **删除操作**:删除操作相对简单,找到要删除的元素,将其值替换为数组末尾的元素,然后减少线性表的长度。在C++中,可以使用`erase`函数,但要注意处理好数组大小和元素个数的同步。 4. **查找操作**:在数组中...
计算线性表的长度相对简单,只需要返回数组中实际元素的数量即可。这个操作的时间复杂度为O(1),因为它不依赖于表的大小。 6. **线性表的置空操作** 置空线性表意味着清空数组中的所有元素。在C语言中,这通常...
在这个"线性表c代码实现"中,我们将会探讨如何使用C语言来实现线性表的顺序存储结构及其相关功能。 顺序存储的线性表是通过一维数组来实现的,数组中的每个元素代表线性表中的一个节点。这样的结构简单直观,但在...
通过这份文档,学习者可以掌握如何使用C语言中结构体和数组来模拟线性表,并实现对数据的基本操作,同时了解如何设计和实现一个简单的通讯录管理系统。这对于加深对线性数据结构的理解,提高解决实际问题的能力,...
数组实现简单,但插入和删除元素时可能需要移动大量元素,效率较低。 - **链表**:每个元素(节点)包含数据部分和指向下一个元素的指针。链表插入和删除操作通常更快,因为不需要移动元素,但访问元素的速度较慢,...
获取线性表中指定位置的元素相对简单,只需要返回相应索引处的数组元素即可: ```c int get(SeqList* list, int index) { if (index || index >= list->length) { // 错误处理:索引超出范围 } return list->...
在本程序中,"线性表简单自然连接"是指将两个线性表按照一定的条件进行拼接,形成一个新的线性表。这种连接方式通常应用于数据库查询中的连接操作,例如SQL中的JOIN。 线性表可以采用顺序存储结构或链式存储结构。...
线性表简单的C语言实现
线性表是包含n(n>=0)个相同类型元素的有限序列,其逻辑结构简单明了,每个元素都有一个前驱元素和一个后继元素,除了第一个元素没有前驱,最后一个元素没有后继。本实验将探讨线性表的两种主要物理实现方式:链表...
6. **优势与局限**:顺序实现的线性表操作简单,便于理解,但插入和删除操作在非末尾位置时效率较低,且数组的大小限制了动态调整的灵活性。 在实际应用中,线性表的顺序实现常用于数据量较小或者插入、删除操作较...
在这个“线性表实现的内存中的学生信息管理系统”中,我们主要探讨如何利用线性链表来管理学生信息,并通过直接选择排序对学生信息进行学号排序。 首先,我们要理解线性链表的概念。线性链表是由一系列节点(每个...
这个压缩包文件包含的"顺序线性表代码"很可能是C语言实现的顺序存储结构,用于理解和操作顺序线性表。下面我们将深入探讨顺序线性表的概念、特点以及C语言中的实现方法。 顺序线性表是线性表的一种,其中元素按照...
线性表的逻辑结构简单明了,元素之间存在一对一的关系,即每个元素都有一个前驱和一个后继,除了第一个元素没有前驱,最后一个元素没有后继。这种结构使得线性表的操作相对直观,主要包括插入、删除、查找等基本操作...
本资料包“数据结构——线性表的实现.zip”着重介绍了线性表的两种常见实现方式:链表和数组。 1. 链表实现: 链表是一种物理存储单元非连续、非顺序的存储结构,它通过节点间的指针链接来表示元素之间的逻辑关系...
线性表是数据结构中最简单但又十分重要的类型,它是一组相同类型的元素按照特定顺序排列的集合。在C++中,线性表通常有两种常见实现:顺序表(Sequential List)和链表(Linked List)。这里我们主要关注顺序表的...
线性表的实现可以用 C 语言来实现,本文提供了一个简单的单链表的实现代码。 五、线性表的应用 线性表有很多实际应用,例如: * 集合操作:可以用单链表来表示集合,并实现集合的基本操作,如并、交、差等。 * ...