Java数据结构之线性表—数组存储
最近在学Java语言,连着数据结构等课程一起学习,这里就作为自己记录学习过程的地方。
希望以后能带来更多、更好、更有水平的博客分享给大家。
实现结果:
/*
* 使用数组实现的线性表
* @author join
*/
public class arrayADT {
private Object[] entry;
private int length;
private Object element;
private static final int max_size = 50;
public arrayADT() {
length = 0;
entry = new Object[max_size];
}
//线性表末尾插入一个新元素
public void add(Object newEntry) {
entry[length] = newEntry;
length++;
}
//在指定位置插入一个新元素
public void add(int newPosition,Object newEntry) {
makeRoom(newPosition);
entry[newPosition-1] = newEntry;
length++;
}
private void makeRoom(int newPosition) {
for(int index=length;index>=newPosition;index--) {
entry[index]=entry[index-1];
}
}
//删除元素
public void remove(int givenPosition) {
}
//清除所有元素
public void clear() {
length = 0;
}
//替换元素
public void replace(int givenPosition,Object newEntry) {
for(int index=0;index<entry.length;index++) {
entry[givenPosition-1] = newEntry;
}
}
//获取线性表中对应位置的元素
public Object getEntry(int givenPosition) {
for(int index=0;index<entry.length;index++) {
Object element = entry[index];
}
return element;
}
//检查是否包含元素
public boolean contains(Object anEntry) {
for (Object element2 : entry) {
if(anEntry==element2) {
return true;
}
}
return false;
}
//获取线性表的长度
public int getLength() {
return length;
}
//判断是否为空?
public boolean isEmpty() {
return length == 0;
}
//展示
public void display() {
for(int index=0;index<length;index++) {
System.out.println(entry[index]);
}
}
}
测试集:
package 线性表;
public class ADTtest {
public static void main(String[] args) {
//创建线性表对象
arrayADT ad = new arrayADT();
//添加元素
ad.add(5);
ad.add(7);
ad.add(8);
ad.add(10);
ad.add(12);
ad.add(100);
//判断元素是否包含在线性表中
System.out.println(ad.contains(70));
//用222替换第3个元素
ad.replace(3, 222);
//添加字符串对象
ad.add("baidu");
//添加float对象
ad.add(0.2665);
//显示
ad.display();
}
}
由于本人是第一次用Java语言实现数据结构内容,因此以实现为目的,对实现过程中的一些判断并没有细致追求。
因此,大家在参考时可以自己完善一下,希望能多多指教,谢谢。
事间:2019-4-22 22:05