本人第一次发帖,只是想把自己学习的知识做一个记录,在数据结构相关的内容里面大部分来自于周鹏的“数据结构--java语言版”一书,如有侵权望作者即时指出,谢谢。
工作了两年多,平时都不注意基本知识积累,或者曾经知道了,但是没有及时记录,过几个月就忘记了,现在出去找工作,很多都会问关于数据结构的知识,每次总是一知半解的回答,最终结果就是没通过面试,好的工作机会眼睁睁的看着没把握住,实在可惜,希望通过再次学习基础知识,能对java有更深的理解和认识。
所写的文章中,主要以代码为主,某些地方可能会写上我自己的体会和认识。新手发帖,写得不好,望各位大大多多指教 :)
List接口,相信大家并不陌生,代码里面用的很多,List的接口声明。
OutOfBoundaryException异常类
Strategy接口
DefaultStrategy实现了Strategy接口
只是简单的实现,并没有实际大小比较策略。
以上声明接口和实现类,是一些基本类,为后面单链表,双链表,连接表服务。
那些具体的性能分析和神奇的公式没贴出来,一是公式不好写,二是看不懂。
工作了两年多,平时都不注意基本知识积累,或者曾经知道了,但是没有及时记录,过几个月就忘记了,现在出去找工作,很多都会问关于数据结构的知识,每次总是一知半解的回答,最终结果就是没通过面试,好的工作机会眼睁睁的看着没把握住,实在可惜,希望通过再次学习基础知识,能对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;
}
}
只是简单的实现,并没有实际大小比较策略。
以上声明接口和实现类,是一些基本类,为后面单链表,双链表,连接表服务。
那些具体的性能分析和神奇的公式没贴出来,一是公式不好写,二是看不懂。