数据结构学习---线性表

本人第一次发帖,只是想把自己学习的知识做一个记录,在数据结构相关的内容里面大部分来自于周鹏的“数据结构--java语言版”一书,如有侵权望作者即时指出,谢谢。
工作了两年多,平时都不注意基本知识积累,或者曾经知道了,但是没有及时记录,过几个月就忘记了,现在出去找工作,很多都会问关于数据结构的知识,每次总是一知半解的回答,最终结果就是没通过面试,好的工作机会眼睁睁的看着没把握住,实在可惜,希望通过再次学习基础知识,能对java有更深的理解和认识。
所写的文章中,主要以代码为主,某些地方可能会写上我自己的体会和认识。新手发帖,写得不好,望各位大大多多指教 :)
List接口,相信大家并不陌生,代码里面用的很多,List的接口声明。
package taxus.list;

public interface List {

//线性表大小,实际存放的元素个数
public int getSize();

//线性表是否为空
public boolean isEmpty();

//线性表是否包含元素e
public boolean contains(Object e);

//返回元素e在线性表中的序号
public int indexOf(Object e);

//将元素e插入到线性表中i号位置
public void insert(int i, Object e) throws OutOfBoundaryException;

//将元素e插入到元素obj之前
public boolean insertBefore(Object obj, Object e);

//将元素e插入到元素obj之后
public boolean insertAfter(Object obj, Object e);

//删除线性表中序号为I的元素,并返回
public Object remove(int i) throws OutOfBoundaryException;

//删除线性表中第一个与e相同的元素
public boolean remove(Object e);

//替换线性表中序号为i的数据元素e,并返回原数据元素
public Object replace(int i, Object e) throws OutOfBoundaryException;

//返回线性表中序号为i的数据元素
public Object get(int i) throws OutOfBoundaryException;

}

OutOfBoundaryException异常类
package taxus.list;

@SuppressWarnings("serial")
public class OutOfBoundaryException extends RuntimeException {

public OutOfBoundaryException(){}

public OutOfBoundaryException(String s){
super(s);
}

}


Strategy接口
package taxus.list;

public interface Strategy {

public boolean equal(Object obj1, Object obj2);

public int compare(Object obj1, Object obj2);
}

DefaultStrategy实现了Strategy接口

package taxus.list;

public class DefaultStrategy implements Strategy {

@Override
public boolean equal(Object obj1, Object obj2) {
// TODO Auto-generated method stub
return false;
}

@Override
public int compare(Object obj1, Object obj2) {
// TODO Auto-generated method stub
return 0;
}

}

只是简单的实现,并没有实际大小比较策略。
以上声明接口和实现类,是一些基本类,为后面单链表,双链表,连接表服务。
那些具体的性能分析和神奇的公式没贴出来,一是公式不好写,二是看不懂。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值