#include <stdio.h> const int maxN = 100010; bool hashTable[maxN] = {false}; int main() { int i, n, m, x; printf("请输入集合n和集合m中元素的个数分别为:"); scanf("%d%d", &n, &m); printf("请输入集合n中的元素:"); for(i = 0; i < n; i++) { scanf("%d", &x); hashTable[x] = true; //数字x出现过 } printf("请输入集合m中的元素:"); for(i = 0; i < m; i++) { scanf("%d", &x); if(hashTable[x] == true) { printf("yes "); } else { printf("no "); } } return 0; }
#include <stdio.h> const int maxN = 100010; int hashTable[maxN] = {0}; int main() { int i, n, m, x; printf("请输入集合n和集合m中元素的个数分别为:"); scanf("%d%d", &n, &m); printf("请输入集合n中的元素:"); for(i = 0; i < n; i++) { scanf("%d", &x); hashTable[x]++; } printf("请输入集合m中的元素:"); for(i = 0; i < m; i++) { scanf("%d", &x); printf("%d ",hashTable[x]); } return 0; }
int hashFunc(char S[], int len) { int id = 0; for(int i = 0; i < len; i++) { id = id * 26 + (S[i] - 'A'); } return id; }
int hashFunc(char S[], int len) { //散列函数,将字符串S转化为整数 int id = 0; for(int i = 0; i < len; i++) { if(S[i] >= 'A' && S[i] <= 'Z') { id = id * 52 + (S[i] - 'A'); } else if(S[i] > 'a' && S[i] < 'z') { id = id * 52 + (S[i] - 'A') + 26; } } return id; }