Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Хеш - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ filebuf:: http://www.cyberforum.ru/cpp-beginners/thread342933.html
здрасти всем, народ у меня беда нужно открыть файл для записи в конец все делаю по книге, а в ней написано последним параметром filebuf::sh_write но мой компилятор(VS 2008) после :: предлагает мне...
C++ калькулятор народ помогите ошибку найти)) полюбому какой нить пустяк а я чета не догоняю)) программа калькулятор.. пишишь например 223+211 и програма должна понять где в строке переменные и какое действие с... http://www.cyberforum.ru/cpp-beginners/thread342925.html
Поиск максимальной последовательности в другой последовательности C++
Доброго времени суток. Решая эту задачу, наткнулся на небольшую проблему... Не знаю, как точно описать ее в двух словах, поэтому покажу на примере. Допустим, мы имеем последовательность,...
whar_t char C++
whar_t и char перевод из одног типа в другой и обратно и обратно?
C++ char *s или char s[] http://www.cyberforum.ru/cpp-beginners/thread342836.html
char s1="1111",s2="2222"; printf("%s %s\n",s1,s2); memmove(s1,s2,2); printf("%s %s\n",s1,s2); работает нормально char *s1="1111",*s2="2222"; printf("%s %s\n",s1,s2); ...
C++ Подскажите книжку по динамическому программированию. Доброго времени суток! Наткнулся на такое понятие, как динамическое программирование, горю желанием узнать больше. Пожалуйста, подскажите литературу по динамическому программированию, только для... подробнее

Показать сообщение отдельно
Jleloush
1 / 1 / 1
Регистрация: 16.01.2010
Сообщений: 26

Хеш - C++

18.08.2011, 01:32. Просмотров 369. Ответов 0
Метки (Все метки)

Пишу прогу, где требуется использовать хеширование с кв опробованием, так воот ничего не получается
Точнее функция добавления элемента не правильно работает(да и все остальное). Еще любопытный момент в строку с номером паспорта добавляется строка с местом выдачи паспорта.
Просьба укажите на фейлы.

структура данных такова
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct Passenger
{   
    char NumPassport[11];   
    char Place_of_Issue[50];
    char FIO[40];
    char DateOfBirth[20];
};
struct HASH
{
    Passenger passenger;
    bool exist;
};
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
#
#include "Hashtable.h"
using namespace std;
 
int hash(Passenger passenger)
{
     long int a=1;
    for(int i=0;i<11;i++)
    {
        if(i==4)
        {
            a=a+2*i*(int)passenger.NumPassport[i+1]+3*i*i*(int)passenger.NumPassport[i+1];
            break;
        }
        a=a+2*i*(int)passenger.NumPassport[i]+3*i*i*(int)passenger.NumPassport[i];
    }
    return a%1000;
}
 
void add(HASH*hash_table,Passenger new_passenger)
{
    int hash1=hash(new_passenger);
    for(int i=1;i<10;i++)
        if(hash_table[(hash1*i)%1000].exist!=true)
        {
            strcpy(hash_table[(hash1*i)%1000].passenger.NumPassport,new_passenger.NumPassport);
            strcpy(hash_table[(hash1*i)%1000].passenger.FIO,new_passenger.FIO);
            strcpy(hash_table[(hash1*i)%1000].passenger.DateOfBirth,new_passenger.DateOfBirth);
            strcpy(hash_table[(hash1*i)%1000].passenger.Place_of_Issue,new_passenger.Place_of_Issue);
            hash_table[(hash1*i)%1000].exist=true;
            break;
        }
}
 
void output(Passenger passenger)
{
    cout<<passenger.NumPassport<<endl;
    cout<<passenger.FIO<<endl;
    cout<<passenger.Place_of_Issue<<endl;
    cout<<passenger.DateOfBirth<<endl;
}
 
void output_all(HASH*hash_table)
{
    for(int i=0;i<1000;i++)
        if(hash_table[i].exist)
            output(hash_table[i].passenger);
}
Добавлено через 5 часов 38 минут
все!все, разрулил, всем спасибо. =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru