#pragma once
#include<iostream>
using namespace std;
class hashs
{
public:
hashs(int max)
{
this->maxsize = max;
this->cursize = 0;
this->num = new int[max];
for (int i = 0; i < max; i++)
{
this->num[i] = '\n';
}
}
int gethashkey(int n)
{
int i = n % maxsize;
int o = maxsize;
while (o--)
{
if (num[i] != '\n')
{
if (i + 1 == maxsize)
{
i = 0;
}
i++;
}
else
{
break;
}
}
return i;
}
void push(int n)
{
if (cursize == maxsize)return;
num[gethashkey(n)] = n;
cursize++;
}
void deletehash(int n)
{
if (this->cursize == 0)return;
for (int i = 0; i < cursize; i++)
{
if (num[i] == n)
{
num[i] = '\0';
}
}
cursize--;
return;
}
void pthash()
{
for (int i = 0; i < maxsize; i++)
{
if (num[i] != '\n')
{
cout << num[i]<<" ";
}
}
cout << endl;
return;
}
~hashs()
{
if (this->num != nullptr)
{
this->num = nullptr;
delete[] this->num;
}
}
int* num;
int maxsize;
int cursize;
};
数组hash
最新推荐文章于 2024-07-23 15:46:40 发布