打印哈希表的1个索引中的所有元素?

时间:2018-05-27 07:47:40

标签: c++

这是我的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()这样的东西。

0 个答案:

没有答案