-
Notifications
You must be signed in to change notification settings - Fork 0
/
hash_dict.c
58 lines (49 loc) · 1.5 KB
/
hash_dict.c
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
56
57
58
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <limits.h>
#include "dict_occ_kmers.h"
typedef struct hash_dict{
dict_kmers** dicts_list; //lista di puntatori ai dizionari
int size; //numero di entry del dizionario
} hash_dict;
void initHashDict(hash_dict* hdict,int size);
int add_in_hash_dict(dict_kmers** dict,int* kmer,int r,int s,int k);
void viewHashDict(hash_dict* hdict,int k);
/*
in: hsdict,size
out: void
viengono allocate al dizionario un numero di entry pari al parametro size
passato per input al dizionario hdict
*/
void initHashDict(hash_dict* hdict,int size){
hdict->size=size;
hdict->dicts_list=(dict_kmers**)malloc(hdict->size * sizeof(dict_kmers*));
for(int i=0;i<hdict->size;i++) hdict->dicts_list[i]=NULL;
}
/*
in: dict,kmer,r,s,k
out: 1 se viene inserita la entry che ha pre chiave kmer e coppia (READ,START) all'interno del dizionario dict
*/
int add_in_hash_dict(dict_kmers** dict,int* kmer,int r,int s,int k){
if(!*dict){//controlla se la entry di hdict relativa al dizionario dict è ha già della memoria allocata
*dict = (dict_kmers*)malloc(sizeof(dict_kmers));
initDict(*dict);
}
return add_in_dict(*dict,kmer,r,s,k);
}
/*
in: hdict, k
out: void
vengono visualizzati tutti i dizionari presenti all'interno di hdict
*/
void viewHashDict(hash_dict* hdict,int k){
for(int i=0;i<hdict->size;i++){
if(hdict->dicts_list[i]){
//printf("ciao\n");
//printf("%d\n",hdict->dicts_list[i]->size);
viewDict(hdict->dicts_list[i],k);
}
}
}