java直线函数_java实现顺序结构线性列表的函数代码
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实现顺序结构线性列表的函数代码相关推荐
- Java 实现线性运动界面_java 实现顺序结构线性列表
packagecom.ncu.list;/*** * 顺序结构线性列表 * *@authorliuhao **/ public class SquenceList{private int size; ...
- 【Java知识点总结】Java语句简介及顺序结构
Java语句简介及顺序结构 语句简介 顺序结构 表达式语句 复合语句 空语句 语句简介 在 Java 中,语句是最小的组成单位,每个语句必须使用分号作为结束符.因为这个性质,有两种特殊情况: 可以将一 ...
- C++实现顺序结构线性表的基本操作
这两天在准备<软件工程>期末考试,顺带着整理一下今天复习线性表基本操作的代码. ps:本人编程水平一般,有问题还望指出,高手请见谅. main.cpp /* 内容:建立元素数据类型为CEl ...
- JAVA基础复习之顺序结构、选择结构、循环结构、break、continue、goto
顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组 ...
- 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)
流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...
- 牛客竞赛语法入门班顺序结构习题C++版本参考代码及部分解析
牛客竞赛语法入门班顺序结构习题 C语言版本的参考代码 重点题: 1005 乘法表 1006 KiKi学程序设计基础 1017 水题再次来袭:明天星期几? 1018 开学? 1019 helloworl ...
- pdf java 开源_Java开源PDF类库 分类列表
iText iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用 ...
- JAVA学习(四):Java流程控制语句(顺序结构、if条件语句、switch条件语句、循环语句与跳转语句)
Java流程控制语句 本博文将对JAVA中组成各种结构的控制语句进行重点介绍,主要内容是区别于C/C++中的流程控制语句的重点解析. 1.顺序语句 顺序结构中的语句可分为:表达式语句.空语句和复合语句 ...
- java显示文件_java 显示文件夹结构
今天看到一个文件显示的代码,想自己写个,先来看看运行结果 下面贴代码 ,注释都有 public class FolderList { /** * 显示文件结构 */ private static in ...
最新文章
- 利用Use Case为系统行为建模(1)
- 小工程结算书范本_工程结算合同书范本_工程结算合同格式
- python编程在哪里写-python入门该从哪里开始?
- WPF快速入门系列(8)——MVVM快速入门
- Zabbix3.2安装
- xinit启动X Window System过程初探(转)
- android device id修改器,修改硬盘ID硬盘序列号工具(Serial Number Changer)
- Anaconda下载太慢问题解决
- 如何自己开发一个Android APP(1)——环境配置
- 小型功率三极管S9013
- 如何做杜邦线、XH线 制作方法
- 上传视频到FTP服务器+播放
- 谷歌chrome浏览器被hao123 360等劫持问题解决方案
- 苹果摄像头黑屏_报道称苹果已将折叠 iPhone 送往测试/苹果官网上线送份好礼,送到心里页面/iPhone 12 mini 拆解报告公布...
- 来自一个大牛对ACM的总结
- 虚拟机由于找不到msvcr120dll_计算机提示丢失msvcr120.dll文件怎么办?
- Verilog语言初学1
- arduino和stm32哪个更好学?
- c 语言字符型转换为整形,高楼平地起!C语言数据的两种类型转换
- 用python-rtmidi捕获MIDI键盘的输入,并回放MIDI消息
热门文章
- linux进程管理笔记
- 我的Linux系统入坑之路!!!!
- 【笔记】分离字符串中的数字、字母和汉字
- phpcms v9 配置sphinx全文索引教程
- 浅谈Junit测试中反射和Jmock的应用
- nginx 解析php漏洞
- Asp.net中服务端控件事件是如何触发的(笔记)
- Boson NetSim实验模拟器破解
- [MyBatis]DAO层只写接口,不用写实现类
- 除非Microsoft FTP 服务(FTPSVC)正在运行,否则无法启动FTP站点。服务目前已停止...