-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHashTable.h
More file actions
55 lines (41 loc) · 1.34 KB
/
Copy pathHashTable.h
File metadata and controls
55 lines (41 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#pragma once
#ifndef _HASHTABLES_H_
#define _HASHTABLES_H_
#include <string>
#include "Node.h"
/// @brief Õåø-òàáëèöà
struct HashTable
{
int Length = 0;
int Capacity = 8;
Node** ArrayPointers;
};
/// @brief Èíèöèàëèçàöèÿ ìàññèâà óêàçàòåëåé
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
void InitializePointers(HashTable* hashTable);
/// @brief Äîáàâëåíèå ýëåìåíòà â õåø òàáëèöó
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
/// @param key Êëþ÷
/// @param value Çíà÷åíèå
void AddElement(HashTable*& hashTable, std::string& key, std::string& value);
/// @brief Óäàëåíèå ýëåìåíòà ïî êëþ÷ó èç õåø òàáëèöû
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
/// @param key Êëþ÷
void RemoveElement(HashTable* hashTable, std::string& key);
/// @brief Íàõîæäåíèå ýëìåíòà ïî êëþ÷ó â õåø òàáëèöå
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
/// @param key Êëþ÷
/// @return Çíà÷åíèå Value
std::string FindElement(HashTable* hashTable, std::string& key);
/// @brief Õåø ôóíêöèÿ
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
/// @param key Êëþ÷
/// @return Èíäåêñ
int HashFunction(HashTable* hashTable, std::string& key);
/// @brief Ðåõåøèíã
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
void Rehashing(HashTable*& hashTable);
/// @brief Óäàëåíèå õåø òàáëèöû
/// @param hashTable Óêàçàòåëü íà õåø òàáëèöó
void RemoveHashTable(HashTable* hashTable);
#endif //_HASHTABLES_H_