Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #define NMAX 1000
- /*---ハッシュ関数(keyのハッシュ値を返す)---*/
- static int hash(int a[], int key)
- {
- int idx = 0;
- if(a[key%12] == 0){
- idx = key%12;
- } else if(a[(key+1)%12]==0){
- idx = (key+1)%12;
- } else if(a[(key+4)%12]==0){
- idx = (key+4)%12;
- }
- return idx;
- }
- /*---ハッシュ表を初期化---*/
- void Initialize(int a[], int size) {
- int i;
- for (i = 0; i < size; i ++) {
- a[i] = 0;
- }
- }
- /*---データの追加---*/
- void Add(int a[], int k){
- a[hash(a,k)] = k;
- }
- /*---ハッシュ表をダンプ---*/
- void Dump(int a[], int size)
- {
- int i;
- for (i = 0; i < size; i ++) {
- printf(" a[%2d]: %d\n", i, a[i]);
- }
- }
- /*---メイン---*/
- int main(void)
- {
- int a[NMAX];
- Initialize(a, 12);
- Add(a, 32);
- Add(a, 17);
- Add(a, 41);
- Add(a, 66);
- Add(a, 79);
- Dump(a, 12);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement