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

Хэш-таблица - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ работа с файлами http://www.cyberforum.ru/cpp-beginners/thread218395.html
всем преет! есть ли возможность в файл вывести только тот текст который мне нужен т.е мне нужно вывести только cout<<wrift;( в самом конце эта команда вывести нужно все данные в переменной) и можно ли как-то вывести одну часть текста в один фаил а другую часть текста в другой??? #include <stdio.h> #include <string.h> #include <conio.h> #include <iostream> #include <fstream>//dl9 sozdaniya...
C++ =( Уважаемые программисты. В универе задали написать программу на си, а этот язык я знаю плохо. Помогите пожалуйста). Суть программы: После запуска программы, нужно ввести ряд символов. Затем следует ввести номер символа, после которого программа разделит этот ряд на 2 части, и поменяет их местами. Пример: ряд чисел - (145257), н символа - 3 , результат - (257145). pm при написании программы... http://www.cyberforum.ru/cpp-beginners/thread218391.html
Дружественная функция C++
Здастье,у меня вопрос. Как через дружественую ф-ю сравнить две символьные строки но использовать стандартную ф-ю strcmp нельзя. Можна ли какнибудь сравнить длинну первой и второй строки или как (пишу на С++)
Четырехугольник C++
Я с OpenGL работаю не так давно и вот появился вопрос как нарисовать четырехугольник с помощью OpenGL?
C++ Подсчитать количество простых чисел в произвольном интервале http://www.cyberforum.ru/cpp-beginners/thread218369.html
Подсчитать количество простых чисел в произвольном интервале. Границы интервала задаются с клавиатуры. #include<iostream> using namespace std; int main() { int min, max; cout << "Enter min: " ; cin >> min; cout << "Enter max: " ; cin >> max; int* arr;
C++ Как настроить формат вывода символов в файл, используя fputc? Пишу программу которая бы предоставленный файл с С++ кодом форматировала стцупенчатой аннотацией. Т.е. после '{' увеличиваем отступ, после '}' уменьшаем и т.д. ... вот набросок, почему - то при использовании fputc у меня fprintf (out,"\n") работает ,а fprintf (out,"\t") нет помогите испарвить пожалуйста #include <iostream> #include <stdio.h> using namespace std; int main() { char Buf,... подробнее

Показать сообщение отдельно
White Luna
 Аватар для White Luna
32 / 26 / 2
Регистрация: 08.09.2010
Сообщений: 402
22.12.2010, 22:14     Хэш-таблица
Задание реализовать динамическую хеш-таблицу с открытой адресацией для хранения строк (операции вставки и поиска). Таблица должна увеличивать свой размер в двое при достижении 50% заполнения.

Операции вставки и поиска я уже сделала и они работают, а вот с увлечением проблемы не знаю как сделать, понимаю что если первоначально таблица была размера m то должна стать 2m, т е мы долны ввести новый массив и.... дальше мозги глохнут

Вот вставка и поиск в хэш-таблице с открытой адресацией
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include "stdafx.h"
#include "string.h"
#include "iostream"
#include "conio.h"
#include "locale.h"
 
using namespace std;
 
const int m=5;
const int a=127;
int c1=5, c2=3;
char*  H[m]={0};
char k[];
 
int h1(char s[],int n)
{
    if (n>0) return ((a*h1(s, n-1))+s[n-1])%m;
        else return 0;  
};
 
int h(char k[], int i, int n)
{
    if(i<(m-1)) return ((h1(k, n)+c1*i+c2*i*i)%m);
    else return 0;
};
 
int Hash_Insert(char* H[m], char k[]) //вставка элемента
{
    int i=0; //номер иследования
    do
    { int n = strlen(k);
        int j=h( k, i, n);
        {
            if(H[j]==NULL) 
                {
                     H[j]=k;
                     cout << j << endl;
                    return j;
                }
                else i++;
        }
    }
    while(i!=m);
        return NULL;
};
 
int Hash_Search(char* H[m], char k[])// поиск элемента
{
    int i=0;
    int j=0;
 
    do
    {
    int n = strlen(k);
 
         j=h(k, i, n);
        if(H[j]!=0 && strcmp(H[j],k)==0){
            cout<<" "<< endl;
        cout << j << endl;
        return j;}
        else i++;   
    }
    while(H[j]!=NULL && i!=m);
        return -1;
};
 
 
 
int _tmain()
{   
    char a[m]="asy";
    int r=h1(a, 3);
    printf("%d\n",r);  // вывод h1
    int e=h("asy", 0, 3);
    printf("%d\n", e);
    
    Hash_Insert(H, "asy");
    Hash_Insert(H, "asyi");
    Hash_Insert(H, "asyo");
 
    Hash_Search(H, "asyo");
 
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru