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

Хеширование, вывести номер стэка (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++ Записи: анкетные данные учеников
Составить программу, выводящую на экран анкетные данные учеников (Ф. И. О., год рождения, адрес, сведения о родителях). Распечатать данные об учениках, родившихся ранее заданного года. сделала по примеру после запроса на год начинаются ошибки не дает дальше ничего водить( #include <iostream> #include <fstream> #include <cstdlib> using namespace std; struct krolik {char name; double...
C++ Доступ к функции http://www.cyberforum.ru/cpp-beginners/thread1175926.html
Добрый день. Есть класс, в котором я вызываю функцию другого класса, функция объявлена как public. Но при сборке проекта компилятор ругается на недействительную ссылку. Понимаю, что дело в последовательности добавления хедеров, но не пойму где ошибка. #include "UIManager.h" #include "SolutionManager.h" auto criteriaNames = UIManager::GetInstance()->GetCriteriaTable() ...
C++ Сформировать массив В, элементами которого являются нули и единицы Тема:из матрицы А создать массив В В файле F матрица действительных чисел размером 3 * 6. Сформировать массив В, элементами которого являются нули и единицы. b = 1 Если все элементы i-го строки меньше действительного числа х и b=0 если хотя бы один элемент строки больше от х. поправьте пожалуйста #include "stdafx.h" #include "stdafx.h" #include <stdio.h> подробнее

Показать сообщение отдельно
VanHalen
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 5
14.05.2014, 19:00     Хеширование, вывести номер стэка (bucket) с максимальным значением
Короче, вот код:
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) с максимальным значением. Номера самих стэков выводит, но задание не выполняет.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru