日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构(一)---顺序表的实现---java版

發布時間:2024/1/23 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构(一)---顺序表的实现---java版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

----------順序表的方法接口定義----------

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版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。