java基础篇–算法顺序表
java语言实现数据结构–顺序结构
package athu;
public class SeqList {
//存储数组的最大容量,默认为100
private int maxSize=100;
//数组中当前已有的表元素
private int n;
private int[] data =null;
//初始化数组
public SeqList(int initSize) {
this.maxSize=initSize;
this.n=0;
data=new int[maxSize];
}
public SeqList() {
this.n=0;
data=new int[maxSize];
}
//清空顺序表
public void clearList(SeqList seqList) {
seqList.n=0;
}
//计算顺序表长度
public int length(SeqList seqList) {
return seqList.n;
}
//判断表是否为空
public boolean isEmpty(SeqList seqList) {
if(seqList.n>0) {
return false;
}
return true;
}
//判断表满否
public boolean isFull(SeqList seqList) {
if(seqList.n==seqList.maxSize) {
return true;
}
return false;
}
//顺序表查找法
public int search(SeqList seqList,int x) {
//在表中顺序查找与值x匹配的元素,查找成功则函数返回该元素的位置,否则函数返回-1
for(int i=0;i<seqList.length(seqList);i++) {
if(seqList.data[i]==x) {
return i;
}
}
return -1;
}
//顺序定位算法
public int locate(SeqList seqList,int i) {
if(i>=1&&i<seqList.n) {
return i;
}
return -1;
}
//顺序表复制
public void copy(SeqList source,SeqList target) {
target.maxSize=source.maxSize;
target.n=target.n;
target.data=new int[target.maxSize];
for(int i=0;i<source.n;i++) {
target.data[i]=source.data[i];
}
}
//顺序表插入法
public boolean insert(SeqList seqList,int local,int data) {
//顺序表已满,插入失败
if(seqList.n==seqList.maxSize) {
return false;
}
//插入位置不正确,插入失败
if(local<0||local>seqList.n+1) {
return false;
}
for(int j=seqList.n;j>=local;j--) {
seqList.data[j]=seqList.data[j-1];
}
seqList.data[local-1]=data;
seqList.n++;
return true;
}
//删除
public boolean remove(SeqList seqList,int local) {
//指定位置不正确,删除失败
if(local<0||local>seqList.n+1) {
return false;
}
for(int j=local;j<seqList.n;j++) {
seqList.data[j-1]=seqList.data[j];
}
seqList.n--;
//删除成功
return true;
}
public static void main(String[] args) {
SeqList seqList=new SeqList(10);
//插入数据
for(int i=1;i<=10;i++) {
seqList.insert(seqList, i, i);
}
//显示数据
for(int i=0;i<seqList.n;i++) {
System.out.print(seqList.data[i]+",");
}
System.out.println();
//删除数据
seqList.remove(seqList, 1);
//显示数据
for(int i=0;i<seqList.n;i++) {
System.out.print(seqList.data[i]+",");
}
}
}