这是我的HashTable类定义
class HashTable {
public:
/**Constructors*/
HashTable(){}
//constructor
~HashTable(){}
//destructor
/**Access Functions*/
int hash(string key) const;
int countBucket(int index) const;
int search(Book b) const;
/**Manipulation Procedures*/
void insert(Book b);
void remove(Book b);
void printBucket(ostream& out, int index) const;
void printTable(ostream& out) const;
private:
static const int SIZE = 10;
List<Book> Table[SIZE];
};
这是List
的类定义template <class listdata>
class List {
private:
struct Node {
listdata data;
Node* next;
Node* previous;
Node(listdata newData){
data = newData;
next = NULL;
previous = NULL;
}
};
Node* start;
Node* stop;
Node* iterator;
int length;
public:
List();
List(const List<listdata>& list);
~List();
listdata getStart() const;
listdata getStop() const;
bool isEmpty() const;
int getLength() const;
listdata getIterator() const;
bool offEnd() const;
bool operator==(const List& list) const;
int getIndex() const;
void removeStart();
void removeStop();
void insertStart (listdata data);
void insertStop(listdata data);
void startIterator();
void removeIterator();
void insertIterator(listdata data);
void moveIterNext();
void moveIterPrevious();
void moveToIndex(int index);
void displayList(ostream& out) const;
};
我不知道如何使用printBucket()打印哈希表中特定索引的所有元素。我想我需要遍历列表并以这种方式打印每个元素,但我不知道如何使用任何列表函数来执行此操作。我想过使用迭代器函数,但是这不起作用,因为printBucket()是一个常量成员函数,所以我不能使用像startIterator()这样的东西。