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

Хеширование, вывести номер стэка (bucket) с максимальным значением - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести самолет, который вылетает позже всего http://www.cyberforum.ru/cpp-beginners/thread1175972.html
#include <cstdlib> #include <iostream> #include <conio.h> #include <string.h> #include <iomanip> #include <fstream> using namespace std; const int len_dest = 18;
C++ Заполнить двумерный массив размером 10 на 10 целыми числами по возрастанию требуется написать программу, заполняющую двухмерный массив размерностью 10 на 10 целыми числами по возрастанию. (помогите плиз не могу отсортировать, именно, двумерный массив.) http://www.cyberforum.ru/cpp-beginners/thread1175958.html
Двоичные файлы C++
Помогите пожалуйста, а то никак сообразить не могу. Нужно создать двоичный файл и записать в него n целых чисел. Создать массив из исходного файла, записав в него числа, расположенные в файле между...
C++ Записи: анкетные данные учеников
Составить программу, выводящую на экран анкетные данные учеников (Ф. И. О., год рождения, адрес, сведения о родителях). Распечатать данные об учениках, родившихся ранее заданного года. сделала по...
C++ Доступ к функции http://www.cyberforum.ru/cpp-beginners/thread1175926.html
Добрый день. Есть класс, в котором я вызываю функцию другого класса, функция объявлена как public. Но при сборке проекта компилятор ругается на недействительную ссылку. Понимаю, что дело в...
C++ Сформировать массив В, элементами которого являются нули и единицы Тема:из матрицы А создать массив В В файле F матрица действительных чисел размером 3 * 6. Сформировать массив В, элементами которого являются нули и единицы. b = 1 Если все элементы i-го строки... подробнее

Показать сообщение отдельно
VanHalen
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 5

Хеширование, вывести номер стэка (bucket) с максимальным значением - C++

14.05.2014, 19:00. Просмотров 169. Ответов 0
Метки (Все метки)

Короче, вот код:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
//Хеширование
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
 
struct Node
{
    int bucket;
    int key;
    Node *Next;
};
 
Node **Table;
int size;
Node *insertNode(int key);
int myhash(int key);
Node *Buckets(int key);
Node *max_bucket(int key);
 
int myhash(int key) 
{
    return (key % size);
}
 
int main()
{
    srand((unsigned)time(NULL));
    int i, *a, maxnum;
    cout << "Insert the number of elements: ";
    cin >> maxnum;
    cout << "Insert hash-table size: ";
    cin >> size;
    a = new int[maxnum];
    Table = new Node*[size];
 
    for (i = 0; i<size; i++)
        Table[i] = NULL; 
    for (i = 0; i<maxnum; i++)
        a[i] = rand() % 100; 
    for (i = 0; i<maxnum; i++) 
    {
        cout << a[i];
        cout << ' ';
    }
    for (i = 0; i < maxnum; i++) 
    {
        insertNode(a[i]);
    }
    for (i = 0; i < maxnum; i++) 
    {
        Buckets(a[i]);      
    }
    
    for (i = 0; i < size; i++)
    {
        max_bucket(a[i]);
    }
    system("PAUSE");
}
 
Node *insertNode(int key) 
{
    Node*p, *p0;
    int bucket;
    bucket = myhash(key);
    if ((p = new Node) == 0) 
    {
        fprintf(stderr, "Нехватка памяти (insertNode)\n");
        exit(1);
    }
    p0 = Table[bucket];
    Table[bucket] = p;
    p->Next = p0;
    p->key = key;
    return p;
}
 
Node *Buckets(int key)
{
    int bucket;
    bucket = (myhash(key));     
    cout << "\nBucket: " << bucket <<' '<< endl;    
    return 0;   
}
 
Node *max_bucket(int key)
{   
    Node *p;
    int bucket;
    bucket = (myhash(key));
    p = Table[bucket];
    while (p!=NULL)
    {
        if (p->bucket > bucket) //Если рассматриваемый элемент > начального
            bucket = p->bucket;
        p = p->Next;
    }   
    cout << "Max bucket: " << bucket << endl;
    return 0;
}
Надо вывести номер стэка (bucket) с максимальным значением. Номера самих стэков выводит, но задание не выполняет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru