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代码)的更多相关文章

  1. 【数据结构】线性表&&顺序表详解和代码实例

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 预备知识 1.0 什么是线性表? 线性表(List)是零个或者多个数据元素的有限序列. 首先它是一个序列.里面的元素是有顺 ...

  2. 数据结构之线性顺序表ArrayList(Java实现)

    一.ListMe接口: import java.util.ArrayList; //实现线性表(顺序表和链表)的接口://提供add get isEmpty size 功能public interfa ...

  3. 五种编程语言解释数据结构与算法——顺序表2(java与C++语言实现)

    5.java实现方式: 5.1.顺序表的抽象结构 package com.xgp.顺序表; public interface MyList<T> { //1. initList(& ...

  4. 【线性表基础】顺序表和单链表的插入、删除等基本操作【Java版】

    本文表述了线性表及其基本操作的代码[Java实现] 参考书籍 :<数据结构 --Java语言描述>/刘小晶 ,杜选主编 线性表需要的基本功能有:动态地增长或收缩:对线性表的任何数据元素进行 ...

  5. javascript数据结构之顺序表

    关于线性表的概念这里就不赘述了,可以自行百度和查阅资料,线性表按照存储(物理)结构分为顺序存储和链式存储,每种存储方式的不同决定了它的实现代码是不同的: 顺序存储的特点就是在内存中选一块连续的地址空间 ...

  6. 五种编程语言解释数据结构与算法——顺序表1(理论与C语言实现)

    1.线性表的分类 2.线性表的定义及其基本操作 2.1.定义:线性表是具有相同类型的n(n>=0)个元素的有序序列,其中n为表长,当n=0时,该表为空表. 2.3.线性表的逻辑结构为: 2.4. ...

  7. 顺序表JAVA代码

        publicclassSeqList{       final int defaultSize =10;     //默认的顺序表的最大长度     int maxSize;          ...

  8. 数据结构Java实现02----线性表与顺序表

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

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

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

随机推荐

  1. vscode导入已存在的vue.js工程

    1.安装vue_cli 如果安装了npm,直接在命令行输入npm install -g vue-cli,安装在全局组件目录下 完成后,可以在命令测试下 2.导入工程 打开vscode-------&g ...

  2. lumen 路由访问路径

    项目目录/public/index.php/接你设置的路由 比如设置了 $app->get('/test', function () use ($app) {    return $app-&g ...

  3. 这些用来审计 Kubernetes RBAC 策略的方法你都见过吗?

    原文链接:这些用来审计 Kubernetes RBAC 策略的方法你都见过吗? 认证与授权对任何安全系统来说都至关重要,Kubernetes 也不例外.即使我们不是安全工作人员,也需要了解我们的 Ku ...

  4. spring-boot-plus集成Spring Boot Admin管理和监控应用(十一)

    spring-boot-plus集成Spring Boot Admin管理和监控应用 spring boot admin Spring Boot Admin用来管理和监控Spring Boot应用程序 ...

  5. 四六级成绩还可以这样查?Python助你装B一步到位!!!

    昨天有很多同学在朋友圈秀六级成绩 一个个都如(sang)此(jin)优(tian)秀(liang) 当然也有悲催的哥们 对于上面这位老弟 我只能说:骚呢,兄弟 这种事都能赶上,必须点赞 一.需求分析 ...

  6. VS引用文件出现黄色感叹号丢失文件,应该如何解决?

    VS是微软开发的一款超级强大的IDE,深受广大.net开发者喜爱. 但是再强大,也会有它的bug和缺点. 多人协同开发时,不知道你有没有遇到一个这样的情况:第二天上班,早早来到公司,打开电脑,拉取一下 ...

  7. HDU 6134

    题意略. 思路: 我们先不考虑[(i , j) == 1],在此情况下,其实这个值是sum( [ (i , j) == 1,2,3,....,n ] ) 这些情况.我们要求的仅仅是其中的第一部分而已. ...

  8. ElasticSearch:组合查询或复合查询

    Bool查询 允许在单独的查询中组合任意数量的查询,指定的查询语句表名哪些部分是必须匹配(must).应该匹配(should)或不能匹配(must_not) Bool过滤器 和查询功能一致,但是同等情 ...

  9. 整数 布尔值 字符串 for循环

    整型和布尔值的转换 整型---数字(int) 用于比较和运算 32位范围 -2** 31到2 **32-1 64位范围-2** 63到2** 63-1 十进制转二进制计算方法: 15的二进制为 15% ...

  10. Leetcode之二分法专题-441. 排列硬币(Arranging Coins)

    Leetcode之二分法专题-441. 排列硬币(Arranging Coins) 你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币. 给定一个数字 n,找出可形 ...