基于二分搜索树的集合set和基于链表的集合
目录
-
集合接口
package com.suanfa.set;
/**
* 集合接口
* @author Administrator
*
* @param <E>
*/
public interface Set<E> {
void add(E e);//添加元素,不能重复
void remove(E e);//删除元素
boolean contains(E e);//是否包含某个元素
int getSize();//获取集合元素个数
boolean isEmpty();//判断集合是否为空
}
-
基于二分搜索树的集合set
package com.suanfa.set;
/**
* 基于二分搜索树的集合
* @author Administrator
*
*/
public class BSTSet<E extends Comparable<E>>implements Set<E> {
private BST<E>bst;
public BSTSet(){
bst=new BST<E>();
}
@Override
public void add(E e) {
bst.add(e);
}
@Override
public void remove(E e) {
bst.remove(e);
}
@Override
public boolean contains(E e) {
return bst.contains(e);
}
@Override
public int getSize() {
return bst.size();
}
@Override
public boolean isEmpty() {
return bst.isEmpty();
}
}
-
基于链表的集合set
package com.suanfa.set;
/**
* 基于链表实现的集合
* @author Administrator
*
*/
public class LinkedListSet<E> implements Set<E>{
private LinkedList<E>list;
public LinkedListSet(){
list=new LinkedList<E>();
}
@Override
public void add(E e) {
if(!list.contains(e))
list.addFirst(e);
}
@Override
public void remove(E e) {
list.removeElement(e);
}
@Override
public boolean contains(E e) {
return list.contains(e);
}
@Override
public int getSize() {
return list.getSize();
}
@Override
public boolean isEmpty() {
return list.isEmpty();
}
}

