Скачиваний:
33
Добавлен:
10.05.2014
Размер:
2.21 Кб
Скачать
#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;


int hash_calc(char x[],const int size)
{
	int StringLength,HashKey,i,tmp;
	//cout<<x<<"\n";
	StringLength=strlen(x); //Начало вычисления ключа
		HashKey=0;
		if (StringLength%2==0) //Чётный случай
		{
			for (i=0; i<StringLength; i=i+2)
			{
				tmp=x[i];
				tmp=tmp*1000;
				tmp=tmp+x[i+1];
				HashKey=HashKey+tmp;
			}
		}
		if (StringLength%2!=0) //Нечётный случай
		{;
			for (i=1; i<=StringLength; i=i+2)
			{
				tmp=x[i];
				tmp=tmp*1000;
				tmp=tmp+x[i+1];
				HashKey=HashKey+tmp;
			}
			HashKey=HashKey+x[0];
		} //конец вычисления ключа
		return (HashKey);
}



int main(void)
{
	char st[19][10];
	int i,j,k,n,keyd[19],ht1[19],ht2[19],ArrOfSin[19];
	bool sin_chk;
	
	strcpy(st[0],"zero");
    strcpy(st[1],"one");
    strcpy(st[2],"twoa");
    strcpy(st[3],"three");
    strcpy(st[4],"four"); 
    strcpy(st[5],"five");
    strcpy(st[6],"six");
    strcpy(st[7],"seven");
    strcpy(st[8],"eight");
    strcpy(st[9],"nine");
    strcpy(st[10],"ten");
    strcpy(st[11],"eleven");
    strcpy(st[12],"twelve");
    strcpy(st[13],"thirteen");
    strcpy(st[14],"fourteen");
    strcpy(st[15],"fifteen");
    strcpy(st[16],"sixteen");
    strcpy(st[17],"seventeen");
    strcpy(st[18],"eighteen");
    strcpy(st[19],"nineteen");
    //strcpy(st[20],"twenty");
    
    for (j=0; j<=19; j++) //Вычисление хэш кода
    {
		n=strlen(st[j]);
		keyd[j]=hash_calc(st[j],n)%20; //Свёртка 2
		cout<<j<<") "<<keyd[j]<<"\n";
	}
	keyd[2]=12;
	// создание хэш таблицы
	for (j=0; j<=19; j++)
	{
		ht1[j]=-1;
		ht2[j]=-1;
		ArrOfSin[j]=-1;	
	}
	k=0;
	for (j=0; j<=19; j++)
	{
		if (ht1[keyd[j]]==-1)
		{
			ht1[keyd[j]]=j;
		}
		else
		{
			if (ht2[keyd[j]]==-1)
			{
				ht2[keyd[j]]=j;
			}
			else
			{
				ArrOfSin[k]=j;
				k++;
			}
		}
	}
	
	cout<<"\n";
	for (j=0; j<=19; j++) {cout<<j<<") "<<ht1[j]<<" * "<<ht2[j]<<"\n";}
	cout<<"\n";
	for (j=0; j<=19; j++) {cout<<j<<") "<<ArrOfSin[j]<<"\n";}
	
}
Соседние файлы в папке old1