コード例 #1
0
ファイル: OpenAddressing.c プロジェクト: na94ojt/MyPlayground
void OAHT_Rehash( HashTable** HT )
{
    int i = 0;
    ElementType* OldTable = (*HT)->Table;

    /*  새 해시 테이블을 만들고, */
    HashTable* NewHT = OAHT_CreateHashTable( (*HT)->TableSize * 2 );
    
    printf("\nRehashed. New table size is : %d\n\n", NewHT->TableSize );

    /*  이전의 해시테이블에 있던 데이터를 새 해시테이블로 옮긴다. */
    for ( i=0; i<(*HT)->TableSize; i++ )
    {
        if ( OldTable[i].Status == OCCUPIED )
        {
            OAHT_Set( &NewHT, OldTable[i].Key, OldTable[i].Value );
        }
    }

    /*  이전의 해시테이블은 소멸시킨다. */
    OAHT_DestroyHashTable( (*HT) );

    /*  HT 포인터에는 새로 해시테이블의 주소를 대입한다. */
    (*HT) = NewHT;
}
コード例 #2
0
void OAHT_Rehash(HashTable** HT)
{
	int i = 0;
	ElementType* OldTable = (*HT)->Table;

	// 새 해시 테이블 생성
	HashTable* NewHT = OAHT_CreateHashTable((*HT)->TableSize * 2);

	printf("\nRehashed. New table size is : %d\n\n", NewHT->TableSize);

	for (i=0;i<(*HT)->TableSize;i++)
	{
		if (OldTable[i].Status == OCCUPIED)	
		{
			OAHT_Set(&NewHT, OldTable[i].Key, OldTable[i].Value);
		}
	}

	OAHT_DestroyHashTable((*HT));

	(*HT) = NewHT;
}
コード例 #3
0
int main(void)
{
	HashTable* HT = OAHT_CreateHashTable(11);

	OAHT_Set(&HT, "MSFT", "Microsoft Corporation");
	OAHT_Set(&HT, "JAVA", "Sun Microsystems");
	OAHT_Set(&HT, "REDH", "Red Hat Linux");
	OAHT_Set(&HT, "APAC", "Apache Org");
	OAHT_Set(&HT, "ZYMZZ", "Unisys Ops Check");
	OAHT_Set(&HT, "IBM", "IBM Ltd.");
	OAHT_Set(&HT, "ORCL", "Oracle Corporation");
	OAHT_Set(&HT, "CSCO", "Cisco Systems, Inc.");
	OAHT_Set(&HT, "GOOG", "Google Inc.");
	OAHT_Set(&HT, "YHOO", "Yahoo! Inc.");
	OAHT_Set(&HT, "NOVL", "Novell, Inc.");

	printf("\n");

	printf("Key:%s, Value:%s\n", "MSFT", OAHT_Get(HT, "MSFT"));
	printf("Key:%s, Value:%s\n", "JAVA", OAHT_Get(HT, "JAVA"));
	printf("Key:%s, Value:%s\n", "REDH", OAHT_Get(HT, "REDH"));
	printf("Key:%s, Value:%s\n", "APAC", OAHT_Get(HT, "APAC"));
	printf("Key:%s, Value:%s\n", "ZYMZZ", OAHT_Get(HT, "ZYMZZ"));
	printf("Key:%s, Value:%s\n", "IBM", OAHT_Get(HT, "IBM"));
	printf("Key:%s, Value:%s\n", "ORCL", OAHT_Get(HT, "ORCL"));
	printf("Key:%s, Value:%s\n", "CSCO", OAHT_Get(HT, "CSCO"));
	printf("Key:%s, Value:%s\n", "GOOG", OAHT_Get(HT, "GOOG"));
	printf("Key:%s, Value:%s\n", "YHOO", OAHT_Get(HT, "YHOO"));
	printf("Key:%s, Value:%s\n", "NOVL", OAHT_Get(HT, "NOVL"));

	OAHT_DestroyHashTable(HT);

	return 0;
}