2、顺序表的实现(java代码)
1、这里实现了简单的顺序表的,为空判断、是否已满判断,插入、删除,查询元素下标等功能
public class Linear_List {
private int[] arr; //用来保存数据
private int size; //实际存入数据占用空间大小
/**
* 初始化线性表,声明数组大小
*
* @param initial_size:数组大小
*/
public Linear_List(int initial_size) {
if (initial_size >= ) {
this.arr = new int[initial_size]; //初始化数组
this.size = ; //初始下标为0
} else {
System.out.println("你给的初始值: " + initial_size + "不能小于0");
}
}
/**
* 判断线性表满没有
*
* @return :真则满,假未满
*/
public boolean isFull() {
if (this.size == arr.length) {
return true;
} else {
return false;
}
}
/**
* 判断线性表是否为空
*
* @return :真则空,假未空
*/
public boolean isEmpty() {
if (this.size == ) {
return true;
} else {
return false;
}
}
/**
* 1、增加元素
*
* @param value :要插入的数据
* @param index :插入的位置
*/
public void addData(int value, int index) {
if (isFull()) {
System.out.println("线性表已满");
} else if (index < || index > arr.length) {
System.out.println("插入的下标越界,您要插入的下标为:" + index);
} else {
for (int i = this.size - ; i >= index; i--) {
arr[i + ] = arr[i]; //依次后移
}
arr[index] = value;
this.size++; //数组元素下标增加
}
}
/**
* 2、删除元素
*
* @param value :要删除的数
*/
public void deleteData(int value) {
int pos = find(value);
if (pos == -) {
System.out.println("您要找的 " + value + " 元素不在该线性表中");
} else {
System.out.println("您要删除的 " + value + " 元素下标为:" + pos);
}
for (int j = pos; j <= this.size - ; j++) { //这里-2,是因为找到的元素下标,要将后一个的冲掉前一个,会增加一个
arr[j] = arr[j + ];
}
this.size--;
}
/**
* 3、查找元素下标
* @param value :所要查找的元素
* @return :返回下标
*/
public int find(int value) {
int pos = -;
if (isEmpty()) {
System.out.println("线性表已空,没有可删除元素");
} else {
for (int i = ; i <= this.size - ; i++) {
if (arr[i] == value) {
pos = i;
}
}
}
return pos;
}
/**
* 打印线性表元素
*/
public void print() {
for (int i = ; i <= this.size - ; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
public static void main(String[] args) {
//初始化顺序表
Linear_List linear_list = new Linear_List();
for (int i = ; i < ; i++) {
linear_list.addData(i + , i);
}
linear_list.print();
//删除
linear_list.deleteData();
linear_list.print();
//增加测试
linear_list.addData(, );
linear_list.print();
//查找元素下标
int find_value = ;
int pos =linear_list.find(find_value);
if (pos == -) {
System.out.println("您要找的 " + find_value + " 元素不在该线性表中");
} else {
System.out.println("您要找的 " + find_value + " 元素下标为:" + pos);
}
}
}
2、简单测试结果
1 2 3 4 5 6 7 8 9 10
您要删除的 5 元素下标为:4
1 2 3 4 6 7 8 9 10
1 5 2 3 4 6 7 8 9 10
您要找的 15 元素不在该线性表中
2、顺序表的实现(java代码)的更多相关文章
- 【数据结构】线性表&&顺序表详解和代码实例
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 预备知识 1.0 什么是线性表? 线性表(List)是零个或者多个数据元素的有限序列. 首先它是一个序列.里面的元素是有顺 ...
- 数据结构之线性顺序表ArrayList(Java实现)
一.ListMe接口: import java.util.ArrayList; //实现线性表(顺序表和链表)的接口://提供add get isEmpty size 功能public interfa ...
- 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)
5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...
- 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】
本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...
- javascript数据结构之顺序表
关于线性表的概念这里就不赘述了,可以自行百度和查阅资料,线性表按照存储(物理)结构分为顺序存储和链式存储,每种存储方式的不同决定了它的实现代码是不同的: 顺序存储的特点就是在内存中选一块连续的地址空间 ...
- 五种编程语言解释数据结构与算法——顺序表1(理论与C语言实现)
1.线性表的分类 2.线性表的定义及其基本操作 2.1.定义:线性表是具有相同类型的n(n>=0)个元素的有序序列,其中n为表长,当n=0时,该表为空表. 2.3.线性表的逻辑结构为: 2.4. ...
- 顺序表JAVA代码
publicclassSeqList{ final int defaultSize =10; //默认的顺序表的最大长度 int maxSize; ...
- 数据结构Java实现02----线性表与顺序表
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 线性表 及Java实现 顺序表、链表、栈、队列
数据结构与算法是程序设计的两大基础,大型的IT企业面试时也会出数据结构和算法的题目, 它可以说明你是否有良好的逻辑思维,如果你具备良好的逻辑思维,即使技术存在某些缺陷,面试公司也会认为你很有培养价值, ...
随机推荐
- 前端模板引擎doT.js的用法
简介 一款简单好用的前端模板引擎 用法 <script type="text/javascript" src="js/doT.min.js">< ...
- Zookeeper_阅读源码第一步_在 IDE 里启动 zkServer(集群版)
上篇文章Zookeeper_阅读源码第一步_在 IDE 里启动 zkServer(单机版)讲了在 idea 里以单机的方式启动zookeeper,这篇介绍一下以集群的方式启动. 集群方式启动,才会真正 ...
- springboot的整合springMvc中的postman的post中的form-data和raw区别
package com.example.demomap.Controller; import com.example.demomap.pojo.ParaEntity; import org.sprin ...
- Java网络编程 -- NIO非阻塞网络编程
从Java1.4开始,为了替代Java IO和网络相关的API,提高程序的运行速度,Java提供了新的IO操作非阻塞的API即Java NIO.NIO中有三大核心组件:Buffer(缓冲区),Chan ...
- think in java 泛型
曾几何时,我们对java的泛型充满了好奇,但是感觉用起来有很爽,但又会在spring类型泛型的地方,遇到问题. 我第一次的遇到泛型是在使用别人的BaseDao的时候,这是一个java封装hiberna ...
- Zabbix-3.4快速安装
过多的介绍不写了,本篇文章主要是快速安装下zabbix服务,如果不知道zabbix监控原理,可以先去了解下. 用的是Centos7.2系统安装的zabbix-3.4 1.下载Zabbix-releas ...
- python学习——高阶函数
递归函数 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数.使用递归函数的优点是逻辑简单清晰,缺点就是过深的调用会导致栈溢出.但是针对尾递归优化的语言可以通过尾递归防 ...
- Scala 系列(十)—— 函数 & 闭包 & 柯里化
一.函数 1.1 函数与方法 Scala 中函数与方法的区别非常小,如果函数作为某个对象的成员,这样的函数被称为方法,否则就是一个正常的函数. // 定义方法 def multi1(x:Int) = ...
- Azure Devops: COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx.csproj no such file or directory
在Azure Devops中部署docker镜像时, 出现COPY failed: stat /var/lib/docker/tmp/docker-builder268095359/xxxxxxx. ...
- JDBC之LOB数据类型
JDBC之LOB数据类型 一.Oracle LOB LOB,即Large Objects(大对象),是用来存储大量的二进制和文本数据的一种数据类型(一个LOB字段可存储可多达4GB的数据). LOB ...