美文网首页程序员
数据结构(七)两种方式实现set

数据结构(七)两种方式实现set

作者: Merlin_720 | 来源:发表于2019-08-24 10:18 被阅读0次

    数据结构(一)数组实现一个简单的ArrayList
    数据结构(二)链表实现LinkedList
    数据结构(三)用两种方式简单实现栈
    数据结构(四)栈和队列的简单应用
    数据结构(五)用两种方式简单实现队列
    数据结构(六)二分搜索树(Binary Search Tree)(上)
    数据结构(六)二分搜索树(Binary Search Tree)(下)
    数据结构(七)两种方式实现set
    数据结构(八)两种方式实现map
    数据结构(九)set解决LeetCode349号问题

    先列一下set的几个简单的接口方法

    public interface Set<E>{
        void add(E e);
        void remove(E e);
        boolean contain(E e);
        int getSize();
        boolean isEmpty();
    }
    这几个方法都是我们常用的方法,这里我就不啰嗦解释了 。
    
    public class BSTSet<E extends Comparable<E>> implements Set<E> {
    
       private  BST<E> bst;
    
       public BSTSet (){
           bst = new BST<>();
       }
       @Override
        public int getSize(){
           return bst.size();
       }
       @Override
        public boolean isEmpty(){
           return bst.isEmpty();
       }
       @Override
        public boolean contain(E e){
           return bst.contains(e);
       }
       @Override
        public void add(E e){
           bst.add(e);
       }
    
       @Override
        public void remove(E e){
           bst.remove(e);
       }
    }
    

    这里是二分搜索树实现的set,因为不存在相同的两个元素,直接调用二分搜索树的方法就可以了。二分搜索树的内部都有详细的注释,有不明白的小伙伴可以去里边看。 二分搜索树BST

    public class LinkedListSet<E> implements Set<E>{
        private LinkedList<E> list;
        public LinkedListSet(){
            list = new LinkedList<>();
        }
    
        @Override
        public int getSize(){
            return list.getSize();
        }
        @Override
        public boolean isEmpty() {
            return list.isEmpty();
        }
    
        @Override
        public boolean contain(E e){
            return list.contains(e);
        }
    
        @Override
        public void add(E e){
            if (!list.contains(e)){
                list.addFirst(e);
            }
        }
    
        @Override
        public void remove(E e){
            list.removeElement(e);
        }
    }
    

    这两个实现都比较简单,都是简单调用之前的方法。

    相关文章

      网友评论

        本文标题:数据结构(七)两种方式实现set

        本文链接:https://www.haomeiwen.com/subject/qsufectx.html