Массив связанных списков для хеш-таблиц C ++ - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь реализовать хэш-функцию h(x) = x % 127 в виде массива связанных списков. В настоящее время я создал функцию добавления, где я добавляю новые узлы в связанные списки, однако я не понимаю, почему ничего не пишется ни в одном связанном списке. Я читаю номер ввода из файла и отправляю его в связанный список как ввод% 127.

#include<iostream>
#include<cstdlib>
#include<fstream>
//#define prim 127
using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

struct nod {
    int info;
    nod *next;
};

void add_nod(nod *p, nod *&u, int info) {
    if (p == NULL) {
        p = new nod;
        p->info = info;
        u = p;
        u->next = NULL;
    }
    else {
        nod *c = new nod;
        c->info = info;
        u->next = c;
        u = c;
        u->next = NULL;
    }
}

int main()
{
    int nr_op, op, x, prim = 127;
    nod * p[127], *u[127];
    for (int i = 0; i < prim; i++) {
        p[i] = u[i] = NULL;
    }

    f >> nr_op;
    while (!f.eof()) {
        f >> op >> x;
        if (op == 1) {
            //delete_nod(p[x%prim], u[x%prim], x);
        }
        if (op == 2) {
            add_nod(p[x%prim], u[x%prim], x);
        }
        if (op == 3) {
            //search_nod(p[x%prim], u[x%prim], x);
        }
    }

    //printing an array of linked lists
    for (int i = 0; i < prim; i++) {
        if (p[i] != NULL) {
            nod *c;
            c = p[i];
            cout << i << ": ";
            while (c != NULL) {
                cout << c->info << " ";
                c = c->next;
            }
        }
    }

    system("Pause");
    return 0;
}

Мой входной файл permutari.in содержит:

7
1 3
1 20
2 7
3 4
3 20
2 20
3 20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...