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

packagecom.ncu.list;/***

* 顺序结构线性列表

*

*@authorliuhao

**/

public class SquenceList{private int size; //线性表的长度

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

publicSquenceList() {

}public SquenceList(intsize) {this.size =size;

listArray= newObject[size];

}public void arrayCopy(intindex) {

Object newArray[]= newObject[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; //释放资源

}/*** 根据索引位置移除元素

*

*@paramindex*/

public void remove(intindex) {

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;

}

}

}/*** 根据元素内容移除元素

*

*@paramelement*/

public voidremoveLocate(T element) {for (int i = 0; i

remove(i+ 1);

}else{

i++;

}

}

}/*** 从线性表尾段插入数据

*

*@paramelement*/

public voidadd(T element) {if (currenSize > size || currenSize < 0) {

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

}else{

listArray[currenSize]=element;

currenSize++;

}

}private void insert(T element, intindex) {

index= index - 1;if (currenSize > size || currenSize < 0 || index < 0

|| index >=currenSize) {

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

}else{

Object newArray[]= newObject[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++;

}

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

*

*@paramelement

*@paramindex*/

public void add(T element, intindex) {if (index ==size) {

add(element);

}else{

insert(element, index);

}

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

public voiddelete() {if(isEmpty()) {

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

}else{

listArray[currenSize- 1] = null;

currenSize--;

}

}/*** 判读线性表是否为空

*

*@return

*/

public booleanisEmpty() {if (currenSize == 0) {return true;

}else{return false;

}

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

*

*@paramindex

*@return

*/

public T get(intindex) {

T obj= null;if (isEmpty() || index > currenSize || index < 0) {

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

}else{

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

}returnobj;

}/*** 清空线性表*/

public voidclear() {

size= 0;

currenSize= 0;

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

*

*@return

*/

public intsize() {returncurrenSize;

}public voidshowList() {if (currenSize > 0) {for (int i = 0; i < currenSize; i++) {

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

}

}else{

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

}

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

}public static voidmain(String[] args) {

SquenceList list = new SquenceList(10);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值