public class ArrayList {
public int[] data; //储存线性表的元素
public int maxLength = 50; //储存数组的容量
public int listSize = 0; //储存线性表元素的个数
/**
* 方法initiate无参数,用于初始化线性表
* @param initiate
*/
public void initiate() {
data = new int[maxLength];
listSize = data[0];
}
/**
* 方法length无参数,用于返回线性表的长度
* @param length
*/
public int length() {
return listSize;
}
/**
*方法insert用于插入数据,在index后面插入一个数值为item的数。
* @param index
* @param item
*/
public void insert(int index,int item) {
for(int i = listSize;i >= index +1;i--) {
data[i + 1] = data[i];
}
data[index + 1] = item;
listSize++;
}
/**
* 方法add用于在线性表的末尾添加一个数值为item的数。
* @param item
*/
public void add(int item) {
data[listSize+1] = item;
listSize++;
}
/**
* 方法delete用于删除第index个数
* @param index
*/
public void delete(int index) {
for (int j = index;j <= listSize;j++) {data[j] = data[j+1];}
listSize--;
}
/**
* 方法get返回第index个数的值,如果index超出范围则返回null。
* @param index
* @return
*/
public String get(int index) {
String j;
int i = 0;
if(index > 0 && index <= listSize) {i = data[index];j = Integer.toString(i);}
else {j = "null";}
return j;
}
/**
* 方法set将第index个数改成数值为item的数。
* @param index
* @param item
* @return
*/
public int set(int index,int item) {
int previousValue = data[index];
data[index] = item;
return previousValue;
}
/**
* 方法traverse将线性表的所有元素显示出来
*
*/
public void traverse() {
for(int i = 1;i <= listSize;i++) {System.out.print(data[i] + " ");}
}
/**
* 方法clear将线性表清空
*
*/
public void clear() {
listSize = 0;
}
public String locate(int item) {
String j = "null";
for(int i = 1;i <= listSize;i++) {
if(item == data[i]) {int index = i;j = Integer.toString(index);}
else {j = "null";}
}
return j;
}
/**
* 方法isEmpty判断线性表是否为空,若为空则返回数值1,否则返回数值0
* @return
*/
public byte isEmpty() {
byte i = 0;
if (listSize == 0) {i = 1;}
else {i = 0;}
return i;
}
}
这是数据结构中线性表的顺序存储结构的java实现。前面几种方法已测试通过,就是locate方法返回总是返回null,不知道什么原因
String j = "null"; ------>String j = null; String 类型是不能改变的 ,j = Integer.toString(index);这里会出错for(int i = 1;i <= listSize;i++) {
if(item == data[i]) {int index = i;j = Integer.toString(index);}
else {j = "null";}
}
return j;}
public String locate(int item) {
String j = "null";for(int i = 1;i <= listSize;i++) {
if(item == data[i]) {int index = i;j = Integer.toString(index);}
// else {j = "null";} // 删掉这一句
}
return j;
}