自定义动态数组 见 数据结构-数组(Java)
自定义链表 见 数据结构-链表(Java)
栈
/**
* @Author: FangJu
* @Date: 2019/8/18
*/
public interface Stack<E> {
int getSize();
boolean isEmpty();
void push(E e);
E pop();
E peek();
}
数组栈
/**
* @Author: FangJu
* @Date: 2019/8/18
*/
public class ArrayStack<E> implements Stack<E> {
private Array<E> data;
public ArrayStack() {
data = new Array<>();
}
@Override
public int getSize() {
return data.size();
}
@Override
public boolean isEmpty() {
return data.isEmpty();
}
@Override
public void push(E e) {
data.add(e);
}
@Override
public E pop() {
return data.removeLast();
}
@Override
public E peek() {
return data.get(data.size() - 1);
}
}
链表栈
/**
* @Author: FangJu
* @Date: 2019/8/19
*/
public class LinkedListStack<E> implements Stack<E> {
private LinkedList<E> list;
public LinkedListStack() {
list = new LinkedList<>();
}
@Override
public int getSize() {
return list.getSize();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
@Override
public void push(E e) {
list.add(e);
}
@Override
public E pop() {
return list.removeLast();
}
@Override
public E peek() {
return list.getLast();
}
}
其他数据结构 见 数据结构知识点汇总