0

这仍然是我的家庭作业。我的作业有最后一个问题。我一直在为这段代码编写 print() 。我无法完全产生我想要的输出。使用我的 print() 我无法使用我的插入函数输出添加到我的哈希表中的值。我知道在我的 print() 中我使用了错误的 List 数组,但我似乎无法弄清楚如何将我的 List 数组合并到我的 print() 中。这是我的类声明,以及我的 insert() 和 print()。

const int EMPTY = 0;
const int OCCUPIED = 1;
class HTable
{
  public:
HTable(int size);
void insert( const string &key);
void remove(const string &key);
void print();


  private:
vector<list<string>> List;
int currSize;

//int hash(string key)const;
unsigned hash(const std::string& key) const;
int hash_string( const string &s );
int hashFunction(string key);
int HTableSize;
//int *status_arr;
ostream &   operator <<( ostream &);
HTable * table;
int *tableContents;
int recordSpace;
};

插入()

inline void HTable::insert(  const string &key )
{
  // hash the key to determine which bucket the key would be stored in.
  int bucketNum = hash(key) ;

  list<string>& bucket = List[bucketNum] ;

  // search the bucket to see if the key is already in the bucket.
  if ( bucket.empty() || bucket.end() == find(bucket.begin(), bucket.end(), key) )
    bucket.push_back(key) ;           // if it's not in the bucket, store it in the bucket.
}

打印()

inline void HTable::print()
{
    list<string>::iterator itr;
for(int i = 0; i < HTableSize; i++)
{
    if(tableContents[i] != OCCUPIED)
        cout << (i)   << endl;

}

}
4

0 回答 0