package com.ncu.list;

/**

*

* 顺序结构线性列表

*

*

*/

public class SquenceList {

private int size; // 线性表的长度

private Object[] listArray;

private int currenSize = 0; // 当前线性表中的数据

public SquenceList() {

}

public SquenceList(int size) {

this.size = size;

listArray = new Object[size];

}

public void arrayCopy(int index) {

Object newArray[] = new Object[size];

for (int i = 0; i < currenSize; i++) {

if (i >= index) {

newArray[i] = listArray[i + 1];

} else {

newArray[i] = listArray[i];

}

}

listArray = newArray;

newArray = null; // 释放资源

}

/**

* 根据索引位置移除元素

*

* @param index

*/

public void remove(int index) {

index = index - 1;

if (index < 0 || index > currenSize) {

System.out.println("线性表索引越界");

}

if (currenSize == 0) {

System.out.println("线性表为空");

} else {

currenSize--;

arrayCopy(index);

if (currenSize == 0) {

listArray = null;

}

}

}

/**

* 根据元素内容移除元素

*

* @param element

*/

public void removeLocate(T element) {

for (int i = 0; i < currenSize;) {

if (element.equals(listArray[i])) {

remove(i + 1);

} else {

i++;

}

}

}

/**

* 从线性表尾段插入数据

*

* @param element

*/

public void add(T element) {

if (currenSize > size || currenSize < 0) {

System.out.println("线性表索引越界");

} else {

listArray[currenSize] = element;

currenSize++;

}

}

private void insert(T element, int index) {

index = index - 1;

if (currenSize > size || currenSize < 0 || index < 0

|| index >= currenSize) {

System.out.println("线性表索引越界");

} else {

Object newArray[] = new Object[size];

for (int i = 0; i < currenSize; i++) {

if (i >= index) {

newArray[index] = element;

newArray[i + 1] = listArray[i];

} else {

newArray[i] = listArray[i];

}

}

listArray = newArray;

newArray = null;

currenSize++;

}

}

/**

* 在指定索引位置插入数据

*

* @param element

* @param index

*/

public void add(T element, int index) {

if (index == size) {

add(element);

} else {

insert(element, index);

}

}

/**

* 删除线性表最后一个元素

*/

public void delete() {

if (isEmpty()) {

System.out.println("线性表为空,不能删除");

} else {

listArray[currenSize - 1] = null;

currenSize--;

}

}

/**

* 判读线性表是否为空

*

* @return

*/

public boolean isEmpty() {

if (currenSize == 0) {

return true;

} else {

return false;

}

}

/**

* 根据索引找到相应的元素

*

* @param index

* @return

*/

public T get(int index) {

T obj = null;

if (isEmpty() || index > currenSize || index < 0) {

System.out.println("线性表为空,不能删除");

} else {

obj = (T) listArray[index - 1];

}

return obj;

}

/**

* 清空线性表

*/

public void clear() {

size = 0;

currenSize = 0;

}

/**

* 得到线性表当前的元素的个数

*

* @return

*/

public int size() {

return currenSize;

}

public void showList() {

if (currenSize > 0) {

for (int i = 0; i < currenSize; i++) {

System.out.println(listArray[i]);

}

} else {

System.out.println("线性表为空");

}

System.out.println("------------");

}

public static void main(String[] args) {

SquenceList list = new SquenceList(10);

}

}

java直线函数_java实现顺序结构线性列表的函数代码相关推荐

  1. Java 实现线性运动界面_java 实现顺序结构线性列表

    packagecom.ncu.list;/*** * 顺序结构线性列表 * *@authorliuhao **/ public class SquenceList{private int size; ...

  2. 【Java知识点总结】Java语句简介及顺序结构

    Java语句简介及顺序结构 语句简介 顺序结构 表达式语句 复合语句 空语句 语句简介 在 Java 中,语句是最小的组成单位,每个语句必须使用分号作为结束符.因为这个性质,有两种特殊情况: 可以将一 ...

  3. C++实现顺序结构线性表的基本操作

    这两天在准备<软件工程>期末考试,顺带着整理一下今天复习线性表基本操作的代码. ps:本人编程水平一般,有问题还望指出,高手请见谅. main.cpp /* 内容:建立元素数据类型为CEl ...

  4. JAVA基础复习之顺序结构、选择结构、循环结构、break、continue、goto

    顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组 ...

  5. 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)

    流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...

  6. 牛客竞赛语法入门班顺序结构习题C++版本参考代码及部分解析

    牛客竞赛语法入门班顺序结构习题 C语言版本的参考代码 重点题: 1005 乘法表 1006 KiKi学程序设计基础 1017 水题再次来袭:明天星期几? 1018 开学? 1019 helloworl ...

  7. pdf java 开源_Java开源PDF类库 分类列表

    iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...

  8. JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)

    Java流程控制语句 本博文将对JAVA中组成各种结构的控制语句进行重点介绍,主要内容是区别于C/C++中的流程控制语句的重点解析. 1.顺序语句 顺序结构中的语句可分为:表达式语句.空语句和复合语句 ...

  9. java显示文件_java 显示文件夹结构

    今天看到一个文件显示的代码,想自己写个,先来看看运行结果 下面贴代码 ,注释都有 public class FolderList { /** * 显示文件结构 */ private static in ...

最新文章

  1. 利用Use Case为系统行为建模(1)
  2. 小工程结算书范本_工程结算合同书范本_工程结算合同格式
  3. python编程在哪里写-python入门该从哪里开始?
  4. WPF快速入门系列(8)——MVVM快速入门
  5. Zabbix3.2安装
  6. xinit启动X Window System过程初探(转)
  7. android device id修改器,修改硬盘ID硬盘序列号工具(Serial Number Changer)
  8. Anaconda下载太慢问题解决
  9. 如何自己开发一个Android APP(1)——环境配置
  10. 小型功率三极管S9013
  11. 如何做杜邦线、XH线 制作方法
  12. 上传视频到FTP服务器+播放
  13. 谷歌chrome浏览器被hao123 360等劫持问题解决方案
  14. 苹果摄像头黑屏_报道称苹果已将折叠 iPhone 送往测试/苹果官网上线送份好礼,送到心里页面/iPhone 12 mini 拆解报告公布...
  15. 来自一个大牛对ACM的总结
  16. 虚拟机由于找不到msvcr120dll_计算机提示丢失msvcr120.dll文件怎么办?
  17. Verilog语言初学1
  18. arduino和stm32哪个更好学?
  19. c 语言字符型转换为整形,高楼平地起!C语言数据的两种类型转换
  20. 用python-rtmidi捕获MIDI键盘的输入,并回放MIDI消息

热门文章

  1. linux进程管理笔记
  2. 我的Linux系统入坑之路!!!!
  3. 【笔记】分离字符串中的数字、字母和汉字
  4. phpcms v9 配置sphinx全文索引教程
  5. 浅谈Junit测试中反射和Jmock的应用
  6. nginx 解析php漏洞
  7. Asp.net中服务端控件事件是如何触发的(笔记)
  8. Boson NetSim实验模拟器破解
  9. [MyBatis]DAO层只写接口,不用写实现类
  10. 除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止...