数据结构(一)---顺序表的实现---java版
来源:互联网 发布:vue require加载js 编辑:程序博客网 时间:2024/05/21 06:50
----------顺序表的方法接口定义----------
package com.cn.hbut.dao;
/*** @author wickedvalley
* description:
* 线性表的接口定义
*/
public interface DefineList {
public void clear();//初始化
public Object gete(int i);//返回第i个元素
public int length();//求长度
public int loc(Object e);//查找,若找到,返回元素的位置,否则返回0
public boolean inset(int loc,Object e);//将e插入loc位置
public Object dele(int loc);//删除loc位置的元素
public boolean full();//判断线性表是否为满
public boolean empty();//判断线性表是否为空
}
----------顺序表的具体实现----------
package com.cn.hbut.daoImpl;
import com.cn.hbut.dao.DefineList;
public class SqList implements DefineList{
final int deflen=10;//自定义长度
Object [] elem;//存储元素的数组
int curlen; //当前的元素个数
int maxlen; //最大元素个数
//无参的构造函数用以初始化线性表
public SqList() {
curlen=0;
maxlen=deflen;
elem=new Object[maxlen];
}
//指定大小的构造函数用以初始化线性表
public SqList(int maxsz) {
curlen=0;
maxlen=maxsz;
elem=new Object[maxlen];
}
//指定线性表的具体的元素以及最大个数
public SqList(Object [] a,int maxsz) {
curlen=a.length;
maxlen=maxsz>curlen?maxsz:curlen;
elem=new Object[maxlen];
for(int i=0;i<curlen;i++)elem[i]=a[i];
}
//指定线性表的具体的元素以及最大个数
public SqList(SqList sql) {
curlen=sql.curlen;
maxlen=sql.maxlen;
elem=new Object[maxlen];
for(int i=0;i<curlen;i++)elem[i]=sql.elem[i];
}
//清空线性表
@Override
public void clear() {
curlen=0;
}
//获取某个位置的元素
@Override
public Object gete(int i) {
if(i>=1&&i<=curlen)
return elem[i-1];
else
return null;
}
//当前线性表的长度
@Override
public int length() {
return curlen;
}
//查找某个元素的位置
@Override
public int loc(Object e) {
int i=0;
while(i<curlen&&(!elem[i].equals(e)))i++;
if(i<curlen)
return i+1;
return 0;
}
//在某个位置插元素
@Override
public boolean inset(int loc, Object e) {
int i;
if(loc<1||loc>curlen+1||curlen==maxlen)return false;
else
{
curlen++;
for(i=curlen-1;i>=loc;i--)elem[i]=elem[i-1];
elem[loc-1]=e;
return true;
}
}
//删除某个位置的元素
@Override
public Object dele(int loc) {
int i;
if(loc<1||loc>curlen+1||curlen==maxlen)return null;
Object obj=elem[loc-1];
for(i=curlen-1;i>=loc;i--)elem[i-1]=elem[i];
return obj;
}
//判断线性表是否已满
@Override
public boolean full() {
return curlen==maxlen;
}
//判断线性表是否为空
@Override
public boolean empty() {
return curlen==0;
}
}
----------测试顺序表的一些方法----------
package com.cn.hbut.test;
import org.junit.Test;
import com.cn.hbut.daoImpl.SqList;
public class TestCase {
@Test
public void testSqlist(){
Integer [] a={1,7,3};
SqList sql = new SqList(a, 5); //初始化线性表
Object obj=sql.dele(2);//删除第2个位置的元素
System.out.println("您删除的元素是:"+obj);
System.out.println("线性表的长度:"+sql.length());
sql.inset(2, 5);//第2个位置插入2
Object obj2 = sql.gete(2);//获取第2个位置元素
System.out.println("获取第2个位置元素:"+obj2);
System.out.println("线性表是否为空:"+sql.empty());//线性表是否为空
}
}
- 数据结构(一)---顺序表的实现---java版
- 大话数据结构(一)——线性表顺序存储结构的java实现
- Java与数据结构(一) 顺序表
- 1-java数据结构顺序表的实现
- 数据结构(一):线性表的顺序存储结构-顺序表的实现
- 数据结构—顺序表(自己实现Java的ArrayList)
- java实现顺序表数据结构
- 数据结构 (一)顺序表&链表实现
- 数据结构(一)——顺序表及实现
- C++实现数据结构一 顺序表
- [数据结构一]线性表:顺序实现
- 数据结构顺序表的实现
- 数据结构顺序表的实现
- 数据结构----顺序表的实现
- 【数据结构】顺序表的实现
- 数据结构顺序表的定义(Java)
- 【python】python数据结构(一)——线性表:顺序表的实现
- [自学《数据结构(C语言版)》] C中顺序线性表的实现(一)
- HDU3783
- HDU3785 寻找大富翁 优先队列
- 《大话数据结构》
- Volley使用
- HDU5620 斐波那契数列的应用 思维 规律
- 数据结构(一)---顺序表的实现---java版
- Java-volatile关键字
- 实现List集合中数据逆序排列
- hadoop分布式配置学习笔记
- 单继承时的构造函数的调用次序
- Codeforces 612C Replace To Make Regular Bracket Sequence stack栈 的应用
- mysql数据库事务
- python利用pyinstaller打包exe可执行文件
- codeforces630C lucky numbers 大水题