Ejemplo n.º 1
0
int main(int argc, const char * argv[]) {
    HashTableNode nodes[2] = {{"Pantera",234}, {"Pantera2",223}};
    HashTable * hashTable = newHashMap(nodes, 2);
    hashTableSet(hashTable, "key2", 666);
    hashTableSet(hashTable, "key3", 666);
    printHashTable(hashTable);
    int key2 = hashTableGet(hashTable, "key2");
    printf("\nkey2 %i\n", key2);
    
    return 0;
}
Ejemplo n.º 2
0
bool hasUniqueCharacters(char * str) {
    HashTable  * table = newHashMap(NULL, 0);
    char * ptr = &str[0];
    while (ptr != NULL && *ptr != '\0') {
        char temp[2] = {*ptr,'\0'};
        if(hashTableGet(table, temp) == HashTableNotFound){
            hashTableSet(table, temp, 1);
            printHashTable(table);
            ptr++;
        }else{
            printHashTable(table);
            printf("string does not have unique characters, found at least two %c\n", *ptr);
            ptr = NULL;
        }
    }
    
    return false;
}
Ejemplo n.º 3
0
void normalizeKey(RefManager manager) {
	HashMap nbUse = newHashMap(hashString, comparString);
	initIteratorRefManager(manager);
	while(hasNextRefManager(manager)) 
	{
		Reference ref = nextRefManager(manager);
		char id [SIZE_BUFFER_ID];
		char* author = ref->champs[ref_author];
		if (strlen(author) > 0) {
			strcpy(id, getInitialesAuthor(author));
		}
		sprintf(id + strlen(id), ":%s", ref->champs[ref_year]);
		printf("\n\n\n\n\n\n%s\n\n\n\n\n\n", id);
		if (containsHashMap(nbUse, id)) 
		{
			char* nbTmp = getHashMap(nbUse, id);
			int occurence = getNb(nbTmp);
			size_t tailleCle = strlen(id);
			if (occurence == 1) 
			{
				Reference oldRef = getRefManager(manager, id);
				char buffer[SIZE_BUFFER_ID];
				strcpy(buffer, id);
				snprintf(buffer + tailleCle, SIZE_BUFFER_ID - tailleCle, ":1"); 
				free(oldRef->id);
				oldRef->id = buffer;
				removeRefManager(manager, id);
				setRefManager(manager, oldRef);
			}
			snprintf(id + tailleCle, SIZE_BUFFER_ID - tailleCle, ":%d", occurence + 1);
			ref->id = id;
			setHashMap(nbUse, id, setNb(occurence + 1));
			setRefManager(manager, ref);
		} 
		else 
		{
			removeRefManager(manager, ref->id);
			ref->id = id;
			setRefManager(manager, ref);
			setHashMap(nbUse, id, setNb(1));
		}
	}
}
Ejemplo n.º 4
0
/**
 * Return a new hashmap allocated and initialized empty.
 */
RefManager newRefManager() {
	RefManager result = malloc(sizeof(*result)); 
	result->map = newHashMap(hashString, (int (*) (void*, void*)) strcmp);
	result->onlyUpdateMode = 0;
	return result;
}