Java——数据结构(顺序表)
这是一个顺序表的类,初始化的时候就已经确定了表的长度,之后不能添加数据,因为使用的是数组存储的数据,不过这个表的类型是泛型的。
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——数据结构(顺序表)的更多相关文章
- Java数据结构——顺序表
一个线性表是由n(n≥0)个数据元素所构成的有限序列. 线性表逻辑地表示为:(a0,a1,…,an-1).其中,n为线性表的长度,n=0时为空表.i为ai在线性表中的位序号. 存储结构:1.顺序存储, ...
- 数据结构顺序表Java实现
Java实现顺序表算法:1:首先我们需要定义我们的接口,关于顺序表的一些基本的操作:顺序表中的操作都有增删改查. //List接口 public interface IList { //返回线性表的大 ...
- hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)
基础数据结构——顺序表(2) Time Limit: 1000 MS Memory Limit: 10240 K Total Submit: 355(143 users) Total Accep ...
- hrbust-1545-基础数据结构——顺序表(2)
http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1545 基础数据结构——顺序表(2) ...
- java实现顺序表、链表、栈 (x)->{持续更新}
1.java实现节点 /** * 节点 * @luminous-xin * @param <T> */ public class Node<T> { T data; Node& ...
- 数据结构——Java实现顺序表
一.分析 什么是顺序表?顺序表是指用一组地址连续的存储单元依次存储各个元素,使得在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中的线性表.一个标准的顺序表需要实现以下基本操作: 1.初始化顺序表 ...
- Java数据结构-线性表之顺序表ArrayList
线性表的顺序存储结构.也称为顺序表.指用一段连续的存储单元依次存储线性表中的数据元素. 依据顺序表的特性,我们用数组来实现顺序表,以下是我通过数组实现的Java版本号的顺序表. package com ...
- Java数据结构之表的增删对比---ArrayList与LinkedList之一
一.Java_Collections表的实现 与c不同Java已经实现并封装了现成的表数据结构,顺序表以及链表. 1.ArrayList是基于数组的实现,因此具有的特点是:1.有索引值方便查找,对于g ...
- 线性表 及Java实现 顺序表、链表、栈、队列
数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...
- Java数据结构-线性表之单链表LinkedList
线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...
随机推荐
- 5. xadmin 后台搭建
要维护他人产权,就不喽了,直接飞机 Django1.11.11使用xadmin的方法(一: 快速安装篇):https://www.jianshu.com/p/bcb74595213e Django1. ...
- 关系型数据库MySql简介
什么是关系型数据库? 数据库就是用来存储数据的仓库,是一种特殊的文件. 根据存储的数据不同,划分为关系型数据库和非关系型数据库. 关系型数据库就是指 建立在关系模型基础上的数据库,通俗来讲这种数据库就 ...
- P2344 奶牛抗议 离散化+前缀和+动态规划+树状数组
[题目背景] Generic Cow Protests, 2011 Feb [题目描述] 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为Ai,数字可正 ...
- markdown的博客
测试一下markdown写博客 function firstProgram() { console.log("This is my first markdown blog"); }
- Golang 高效实践之并发实践
前言 在我前面一篇文章Golang受欢迎的原因中已经提到,Golang是在语言层面(runtime)就支持了并发模型.那么作为编程人员,我们在实践Golang的并发编程时,又有什么需要注意的点呢?下面 ...
- RDIFramework.NET框架基于Quartz.Net实现任务调度详解及效果展示
在上一篇Quartz.Net实现作业定时调度详解,我们通过实例代码详细讲解与演示了基于Quartz.NET开发的详细方法.本篇我们主要讲述基于RDIFramework.NET框架整合Quartz.NE ...
- 手机web app开发笔记
各位朋友好,最近自学开发了一个手机Web APP,“编程之路”,主要功能包括文章的展示,留言,注册登录,音乐播放等.为了记录学习心得,提高自己的编程水平,也许对其他朋友有点启发,特整理开发笔记如下. ...
- 洛谷P4995 跳跳!题解
求关注,求赞,求评论QAQ 题目:https://www.luogu.org/problemnew/show/P4995 简单描述一下吧,就是说有n块石头,起始可以跳到任何一块上面,接着也是,只不过每 ...
- 第一届合天杯河北科技大学网络安全技术大赛 web6 writeup
- Excel催化剂开源第1波-自定义函数的源代码全公开
Excel催化剂插件从2018年1月1日开始运营,到今天刚好一周年,在过去一年时间里,感谢社区里的许多友人们的关心和鼓励,得以坚持下来,并收获一定的用户量和粉丝数和少量的经济收入回报和个人知名度的提升 ...