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
线性表的链式存储结构,也称之为链式表,链表:链表的存储单元能够连续也能够不连续. 链表中的节点包括数据域和指针域.数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域. 注意一个 ...
随机推荐
- MySQL sys Schema 简单介绍-2
之前在<MySQL sys Schema 简单介绍-1>中简单的介绍了,sys Schema库中的表.那么这些表都可以查询些什么信息呢?接下来本文将做下介绍. 1. 表的情况 1.1 统计 ...
- Spring 核心技术(2)
接上篇:Spring 核心技术(1) version 5.1.8.RELEASE 1.3 Bean概述 Spring IoC 容器管理一个或多个bean,他们都是根据提供的配置元数据(例如 XML 中 ...
- Vue快速学习_第三节
过滤器 局部过滤器(组件内部使用的过滤器,跟django的很像, filters: {过滤器的名字: {function(val, a,b){}}} 全局过滤器(全局过滤器,只要过滤器一创建,在任何组 ...
- 牛逼了,教你用九种语言在JVM上输出HelloWorld
我们在<深入分析Java的编译原理>中提到过,为了让Java语言具有良好的跨平台能力,Java独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode). 有 ...
- PostgreSQL 窗口函数 ( Window Functions ) 如何使用?
一.为什么要有窗口函数 我们直接用例子来说明,这里有一张学生考试成绩表testScore: 现在有个需求,需要查询的时候多出一列subject_avg_score,为此科目所有人的平均成绩,好跟每个人 ...
- android surfaView surfaHolder video 播放
主文件 package cn.com.sxp;import android.app.Activity;import android.media.AudioManager;import android. ...
- Java编程思想:Preferences
import java.util.prefs.BackingStoreException; import java.util.prefs.Preferences; public class Test ...
- SpringBoot基于数据库实现简单的分布式锁
本文介绍SpringBoot基于数据库实现简单的分布式锁. 1.简介 分布式锁的方式有很多种,通常方案有: 基于mysql数据库 基于redis 基于ZooKeeper 网上的实现方式有很多,本文主要 ...
- [leetcode] 67. Add Binary (easy)
原题链接 思路: 用一个数保存进制,从后往前不断pop出两个数字和进制数相加,放入返回值中. var addBinary = function(a, b) { var arrA = a.split(' ...
- 简单web网页与SSM后台交互
简单web网页与SSM后台交互 情况说明 如今,已经搭建好SSM后台开发环境,并且可以经由postman工具测试成功.现在尝试写出web前端网页,通过实现简单的提交.注册.查询功能来加深对前后端数据传 ...