这是一个顺序表的类,初始化的时候就已经确定了表的长度,之后不能添加数据,因为使用的是数组存储的数据,不过这个表的类型是泛型的。

public class List {

    private  Object[] data;
private int length; /*
*新建一个线性表
*/
public List(Object...objects) {
this.data = objects;
for(Object object:objects) {
this.length++;
}
} /*
* 若线性表为空,返回true 否则返回false
*/
public boolean ListEmpty() {
if(this.data == null) {
return true;
}else {
return false;
}
} /*
* 将当前线性表清空
*/
public boolean ClearList() {
this.data = null;
this.length = 0;
return true;
} /*
* 将返回线性表的第i个位置的元素值
*/
public Object GetElem(int i) {
return data[i];
} /*
* 在表从找到与e值相等的元素,返回该元素表示成功,返回0表示失败
*/
public Object LocateElem(Object e) {
int i = 0;
for(Object object:this.data) {
if(object == e) {
return i;
}
i++;
}
return 0;
} /*
* 在表中的第i个位置插入新元素e
*/
public Boolean ListInsert(int i, Object e) {
if(this.length == i) {
//如果超过表的长度 返回错误
return false;
}else {
for(int j = this.length - 1; j > i; j--) {
data[j] = data[j-1] ;
}
data[i] = e;
return true;
}
}
/*
* 返回表的长度
*/
public int length() {
return this.length;
} /*
* 删除表的第i个位置
*/
public Boolean ListDelete (int i) {
if(this.length == i) {
//如果超过表的长度 返回错误
return false;
}else {
for(int j = i; j < this.length - 1; j++) {
data[j] = data[j+1] ;
}
return true;
}
} public static void main (String[] args) {
List list1 = new List(1,"字",2,"123");
System.out.print("现在的表:");
for(int i = 0; i < list1.length; i++) {
System.out.print(list1.GetElem(i) + ",");
}
System.out.println();
System.out.print("这个是空的吗");
System.out.println(list1.ListEmpty());
System.out.print("1的位置在");
System.out.println(list1.LocateElem(1));
System.out.print("字的位置在");
System.out.println(list1.LocateElem("字"));
System.out.print("在2的位置添加一个1");
System.out.println(list1.ListInsert(2, 1));
System.out.print("现在的表:");
for(int i = 0; i < list1.length; i++) {
System.out.print(list1.GetElem(i) + ",");
}
System.out.println();
System.out.print("把1的位置的数据删掉");
System.out.println(list1.ListDelete(1));
System.out.print("现在的表:");
for(int i = 0; i < list1.length; i++) {
System.out.print(list1.GetElem(i) + ",");
}
System.out.print("清空表:");
list1.ClearList();
System.out.print("这个是空的吗");
System.out.println(list1.ListEmpty());
}
}

main方法的输出结果是:

现在的表:,我,,,
这个是空的吗false
1的位置在0
字的位置在0
在2的位置添加一个1true
现在的表:,我,,,
把1的位置的数据删掉true
现在的表:,,,,清空表:这个是空的吗true
 

Java——数据结构(顺序表)的更多相关文章

  1. Java数据结构——顺序表

    一个线性表是由n(n≥0)个数据元素所构成的有限序列. 线性表逻辑地表示为:(a0,a1,…,an-1).其中,n为线性表的长度,n=0时为空表.i为ai在线性表中的位序号. 存储结构:1.顺序存储, ...

  2. 数据结构顺序表Java实现

    Java实现顺序表算法:1:首先我们需要定义我们的接口,关于顺序表的一些基本的操作:顺序表中的操作都有增删改查. //List接口 public interface IList { //返回线性表的大 ...

  3. hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)

    基础数据结构——顺序表(2) Time Limit: 1000 MS    Memory Limit: 10240 K Total Submit: 355(143 users) Total Accep ...

  4. hrbust-1545-基础数据结构——顺序表(2)

    http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1545 基础数据结构——顺序表(2) ...

  5. java实现顺序表、链表、栈 (x)->{持续更新}

    1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...

  6. 数据结构——Java实现顺序表

    一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 ...

  7. Java数据结构-线性表之顺序表ArrayList

    线性表的顺序存储结构.也称为顺序表.指用一段连续的存储单元依次存储线性表中的数据元素. 依据顺序表的特性,我们用数组来实现顺序表,以下是我通过数组实现的Java版本号的顺序表. package com ...

  8. Java数据结构之表的增删对比---ArrayList与LinkedList之一

    一.Java_Collections表的实现 与c不同Java已经实现并封装了现成的表数据结构,顺序表以及链表. 1.ArrayList是基于数组的实现,因此具有的特点是:1.有索引值方便查找,对于g ...

  9. 线性表 及Java实现 顺序表、链表、栈、队列

    数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...

  10. Java数据结构-线性表之单链表LinkedList

    线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...

随机推荐

  1. Redis在.net 环境下的使用

    Redis概念 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括st ...

  2. Java 源码学习系列(三)——Integer

    Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包含一个 int 类型的字段. 此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还 ...

  3. [Poi2012]Festival 题解

    [Poi2012]Festival 时间限制: 1 Sec  内存限制: 64 MB 题目描述 有n个正整数X1,X2,...,Xn,再给出m1+m2个限制条件,限制分为两类: 1. 给出a,b (1 ...

  4. 20131227-backgroundPosition

    background-position 用法详细介绍 语法: background-position : length || length background-position : position ...

  5. mimalloc内存分配代码分析

    这篇文章中我们会介绍一下mimalloc的实现,其中可能涉及上一篇文章提到的内容,如果不了解的可以先看下这篇mimalloc剖析.首先我们需要了解的是其整体结构,mimalloc的结构如下图所示   ...

  6. MediatR-进程内的消息通信框架

    MediatR是一款进程内的消息订阅.发布框架,提供了Send方法用于发布到单个处理程序.Publish方法发布到多个处理程序,使用起来非常方便.目前支持 .NET Framework4.5..NET ...

  7. 洛谷P3150 pb的游戏(1) 题解

    题目链接: https://www.luogu.org/problemnew/show/P3150 分析: 这道题是一道典型的入门博弈论.我们可以进行如下考虑: 先引入一个奇偶的性质: 奇数=奇数+偶 ...

  8. Baozi Leetcode Solution 205: Isomorphic Strings

    Problem Statement Given two strings s and t, determine if they are isomorphic. Two strings are isomo ...

  9. 我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc

    我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3cp8ng15g94wc

  10. c语言的strcpy函数

    strcpy是用于复制字符串的函数 上面这个程序输出的结果为 为什么输出字符串%s时s是abABC,而输出字符%c时s是abABCg呢 因为strcpy函数本身的性质:复制字符串直到’\0’结束符为止 ...