hash
Bài học 4 trên 14 trong khóa học Bảng băm, loạt cấu trúc dữ liệu #4 của Coddy.
Thử thách
DễThêm phương thức hash vào lớp HashMap.
Phương thức này nhận một số nguyên key và trả về chỉ số của ngăn chứa tương ứng với khóa đó, được tính bằng key % capacity.
Tự làm thử
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "hashmap.h"
int main() {
HashMap h;
HashMap_init(&h);
char line[256];
while (fgets(line, sizeof(line), stdin)) {
line[strcspn(line, "\r\n")] = '\0';
char* cmd = strtok(line, " \t");
if (!cmd) continue;
if (strcmp(cmd, "state") == 0) { printf("%d %d %d\n", h.capacity, h.capacity, h.count); }
if (strcmp(cmd, "hash") == 0) { char* arg = strtok(NULL, " \t"); if (arg) printf("%d\n", HashMap_hash(&h, atoi(arg))); }
}
return 0;
}
Tất cả bài học trong Bảng băm, loạt cấu trúc dữ liệu #4
Tự luyện tập: Trình biên dịch C online