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

Хешированный список - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Смоделировать бросание каждым из двух игроков трех игральных кубиков http://www.cyberforum.ru/cpp-beginners/thread586560.html
Смоделировать бросание каждым из двух игроков трех игральных кубиков.Определить ,кто из игроков получил большую сумму очков. ПОМОГИТЕ!
C++ Много файловая программа ошибки при компиляции Вроде всё правильно делаю но не работает. Ниже интерфейсы приведены! func.cpp #include"resurse.h" void put(int x) { std::cout<<x<<std::endl; http://www.cyberforum.ru/cpp-beginners/thread586557.html
Массивы: найти сумму, произведение, среднее арифметическое всех чисел массива C++
1.Задано число X.Сформировать массив, состоящий из Х элементов по правилу Ai=x/i. Найти сумму, произведение, среднее арифметическое всех чисел массива. Вывести на экран контрольные значения. 2.Задано число N. Сформировать матрицу А размером N на N из случайных чисел. Найти кол-во четных, нечетных элементов,сумму всех чисел матрицы. Вывести на экран контрольные значения. 3. Задано число...
Найти в текстовом файле одинаковые слова и вывести количество повторений каждого в другой файл C++
Найти в текстовом файле одинаковые слова и вывести количество повторений каждого в другой файл
C++ Как записать выражение? http://www.cyberforum.ru/cpp-beginners/thread586531.html
Ребята помогите оч прошу, срочно срочно надо!! Как записать выражение ? S=1в кубе+2 в кубе+3 в квадрате+ n в кубе
C++ Описать тип struct Point Пожалуйста, помогите решить задачу в Visual Studio Описать тип struct Point, задающий на действительной плоскости точку с именем Name и декартовыми координатами x и y. Реализовать в виде отдельных функций а) операцию сдвига точки на dx и dy вдоль осей абсцисс и ординат соответственно; б) операцию отражения точки относительно каждой из координатных осей; в) операцию поиска точки,... подробнее

Показать сообщение отдельно
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
26.05.2012, 22:15     Хешированный список
Демонстрационная программа сначала заполняет хеш фамилиями из
файла и случайн. знач. индент. очередей, далее производит поиск по
хешу по заданной фамилии:

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
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
 
#include <iostream>
#include <fstream>
 
typedef struct Queue
{
     char* name;
     int id;
} QUEUE, PQUEUE;
 
typedef struct Passanger
{
     char* name;
     QUEUE* pQueue;
} PASSINFO, *pHash;
 
using namespace std;
 
#define _SIZE 100
 
int main()
{
    static char name[256] = "\0";
    printf("Enter passanger name: "); gets(name);
 
    const char* filename = "input.txt";
    ifstream ifs(filename, ifstream::in);
 
    PASSINFO* pHash = new PASSINFO[_SIZE];
    memset((void*)pHash, 0x00, _SIZE * sizeof(PASSINFO));
 
    char* line = new char[80]; int i = 0;
    while ((ifs.peek() >= 0) && (ifs.getline(line,80)))
    {
        pHash[i].name = new char[80];
        strcpy_s(pHash[i++].name, 80, line);
    }
 
    for (int i = 0; pHash[i].name != NULL; i++)
    {
        int count = rand() % 10 + 1;
        pHash[i].pQueue = new QUEUE[count];
        memset((void*)pHash[i].pQueue, 
            0x00, count * sizeof(QUEUE));
 
        for (int k = 0; k < count; k++)
        {
            pHash[i].pQueue[k].id = rand() % 999 + 1;
            pHash[i].pQueue[k].name = new char[256];
            sprintf(pHash[i].pQueue[k].name,"Queue%d_%d",i,k);
        }
    }
 
    while (pHash->name != NULL)
    {
         if (!strcmp(pHash->name,name))
         {
             printf("%s\n",pHash->name);
             for (int k = 0; pHash->pQueue[k].id > 0; k++)
                  printf("%d %s\n",pHash->pQueue[k].id,
                          pHash->pQueue[k].name);
             printf("\n");
         }        
 
         pHash++;
    }
 
    return 0;
}
Input.txt:
Ivanov
Petrov
Safonov
Kirilov
Stepanov
Rybakov
Pavlov
 
Текущее время: 03:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru