zoukankan      html  css  js  c++  java
  • 简单字典数据结构

     

    template <class key, class Elem, class keyCompare, class EECompare>
    class Dictionary
    {
    public:
     virtual void clear() = 0;
     virtual bool insert(const Elem&) = 0;
     virtual bool remove(const key&, Elem&) = 0;
     virtual bool remove_any(Elem&) = 0;
     virtual bool find(const key&, Elem&) = 0;
     virtual int size() = 0;
    }

    class intCompare
    {
     static bool lt(int x, int y)
     {
      return x < y;
     }

     static bool gt(int x, int y)
     {
      return x > y;
     }

     static bool eq(int x, int y)
     {
      return x == y;
     }
    }

    template <class key, class Elem, class keyCompare, class EECompare>
    class unsorted_array_based:public Dictionary<key, Elem, keyCompare, EECompare>
    {
    private:
     array_list<Elem>* list;
    public:
     unsorted_array_based(int size = defaultListSize)
     {
      list = new array_list<Elem>(size);
     }
     ~unsorted_array_based()
     {
      delete list;
     }
     void clear()
     {
      list->clear();
     }
     bool insert(const Elem& item)
     {
      return list->append(item);
     }
     bool remove(const key& k, Elem& e)
     {
      for (list->setStart(); list->getValue(e); list->next())
       if (keyCompare::eq(k,e))
       {
        list->remove(e);
        return true;
       }
      return false;
     }
     bool remove_any(Elem& e)
     {
      if (size()== 0)
       return false;
      list->setEnd();
      list->prev();
      list->remove(e);
      return true;
     }
     bool find(const key& k, Elem& e) const
     {
      for (list->setStart(); list->getValue(e); list->next())
       if (keyCompare::eq(k,e))
        return true;
      return false;
     }
     int size()
     {
      return list->leftLength() + list->rigthLength();
     }
    }

  • 相关阅读:
    软件测试七年之痒,依然热爱!我还是从前那个少年!
    我想从功能测试转向自动化测试,怎么办?
    python中的一些内置函数
    python中eval()
    集合
    列表的切片:取出来还是一个列表,可用在复制列表元素的操作
    字符串常用的方法
    dict字典,以及字典的一些基本应用
    list列表(也叫数组),以及常用的一些方法
    jsonpath的用法
  • 原文地址:https://www.cnblogs.com/seebro/p/2476551.html
Copyright © 2011-2022 走看看