mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-04-13 16:29:48 +08:00
style: format code
This commit is contained in:
@@ -1,117 +1,134 @@
|
||||
#include<iostream>
|
||||
#include<math.h>
|
||||
#include <iostream>
|
||||
#include <math.h>
|
||||
using namespace std;
|
||||
|
||||
struct Node {
|
||||
struct Node
|
||||
{
|
||||
int data;
|
||||
struct Node *next;
|
||||
} *head[100],*curr;
|
||||
} * head[100], *curr;
|
||||
|
||||
void init() {
|
||||
for(int i=0;i<100;i++)
|
||||
head[i]=NULL;
|
||||
void init()
|
||||
{
|
||||
for (int i = 0; i < 100; i++)
|
||||
head[i] = NULL;
|
||||
}
|
||||
|
||||
void add(int x,int h) {
|
||||
void add(int x, int h)
|
||||
{
|
||||
struct Node *temp = new Node;
|
||||
temp->data = x;
|
||||
temp->next = NULL;
|
||||
if(!head[h]) {
|
||||
if (!head[h])
|
||||
{
|
||||
head[h] = temp;
|
||||
curr = head[h];
|
||||
}
|
||||
else {
|
||||
curr=head[h];
|
||||
while(curr->next)
|
||||
else
|
||||
{
|
||||
curr = head[h];
|
||||
while (curr->next)
|
||||
curr = curr->next;
|
||||
curr->next = temp;
|
||||
}
|
||||
}
|
||||
|
||||
void display(int mod) {
|
||||
void display(int mod)
|
||||
{
|
||||
struct Node *temp;
|
||||
int i;
|
||||
for(i=0;i<mod;i++) {
|
||||
if(!head[i]) {
|
||||
cout<<"Key "<<i<<" is empty"<<endl;
|
||||
for (i = 0; i < mod; i++)
|
||||
{
|
||||
if (!head[i])
|
||||
{
|
||||
cout << "Key " << i << " is empty" << endl;
|
||||
}
|
||||
else {
|
||||
cout<<"Key "<<i<<" has values = ";
|
||||
else
|
||||
{
|
||||
cout << "Key " << i << " has values = ";
|
||||
temp = head[i];
|
||||
while(temp->next) {
|
||||
cout<<temp->data<<" ";
|
||||
temp=temp->next;
|
||||
while (temp->next)
|
||||
{
|
||||
cout << temp->data << " ";
|
||||
temp = temp->next;
|
||||
}
|
||||
cout<<temp->data;
|
||||
cout<<endl;
|
||||
cout << temp->data;
|
||||
cout << endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int hash(int x,int mod) {
|
||||
return x%mod;
|
||||
int hash(int x, int mod)
|
||||
{
|
||||
return x % mod;
|
||||
}
|
||||
|
||||
void find(int x,int h) {
|
||||
struct Node *temp =head[h];
|
||||
if(!head[h]) {
|
||||
cout<<"Element not found";
|
||||
void find(int x, int h)
|
||||
{
|
||||
struct Node *temp = head[h];
|
||||
if (!head[h])
|
||||
{
|
||||
cout << "Element not found";
|
||||
return;
|
||||
}
|
||||
while(temp->data !=x && temp->next)
|
||||
temp=temp->next;
|
||||
if(temp->next)
|
||||
cout<<"Element found";
|
||||
else{
|
||||
if(temp->data == x)
|
||||
cout<<"Element found";
|
||||
while (temp->data != x && temp->next)
|
||||
temp = temp->next;
|
||||
if (temp->next)
|
||||
cout << "Element found";
|
||||
else
|
||||
{
|
||||
if (temp->data == x)
|
||||
cout << "Element found";
|
||||
else
|
||||
cout<< "Element not found";
|
||||
cout << "Element not found";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
int main(void)
|
||||
{
|
||||
init();
|
||||
int c,x,mod,h;
|
||||
cout<<"Enter the size of Hash Table. = ";
|
||||
cin>>mod;
|
||||
int c, x, mod, h;
|
||||
cout << "Enter the size of Hash Table. = ";
|
||||
cin >> mod;
|
||||
bool loop = true;
|
||||
while(loop) {
|
||||
cout<<endl;
|
||||
cout<<"PLEASE CHOOSE -"<<endl;
|
||||
cout<<"1. Add element."<<endl;
|
||||
cout<<"2. Find element."<<endl;
|
||||
cout<<"3. Generate Hash."<<endl;
|
||||
cout<<"4. Display Hash table."<<endl;
|
||||
cout<<"5. Exit."<<endl;
|
||||
cin>>c;
|
||||
switch(c) {
|
||||
case 1:
|
||||
cout<<"Enter element to add = ";
|
||||
cin>>x;
|
||||
h = hash(x,mod);
|
||||
h = fabs(h);
|
||||
add(x,h);
|
||||
break;
|
||||
case 2:
|
||||
cout<<"Enter element to search = ";
|
||||
cin>>x;
|
||||
h = hash(x,mod);
|
||||
find(x,h);
|
||||
break;
|
||||
case 3:
|
||||
cout<<"Enter element to generate hash = ";
|
||||
cin>>x;
|
||||
cout<<"Hash of "<<x<<" is = "<<hash(x,mod);
|
||||
break;
|
||||
case 4:
|
||||
display(mod);
|
||||
break;
|
||||
default:
|
||||
loop = false;
|
||||
break;
|
||||
while (loop)
|
||||
{
|
||||
cout << endl;
|
||||
cout << "PLEASE CHOOSE -" << endl;
|
||||
cout << "1. Add element." << endl;
|
||||
cout << "2. Find element." << endl;
|
||||
cout << "3. Generate Hash." << endl;
|
||||
cout << "4. Display Hash table." << endl;
|
||||
cout << "5. Exit." << endl;
|
||||
cin >> c;
|
||||
switch (c)
|
||||
{
|
||||
case 1:
|
||||
cout << "Enter element to add = ";
|
||||
cin >> x;
|
||||
h = hash(x, mod);
|
||||
h = fabs(h);
|
||||
add(x, h);
|
||||
break;
|
||||
case 2:
|
||||
cout << "Enter element to search = ";
|
||||
cin >> x;
|
||||
h = hash(x, mod);
|
||||
find(x, h);
|
||||
break;
|
||||
case 3:
|
||||
cout << "Enter element to generate hash = ";
|
||||
cin >> x;
|
||||
cout << "Hash of " << x << " is = " << hash(x, mod);
|
||||
break;
|
||||
case 4:
|
||||
display(mod);
|
||||
break;
|
||||
default:
|
||||
loop = false;
|
||||
break;
|
||||
}
|
||||
cout<<endl;
|
||||
cout << endl;
|
||||
}
|
||||
/*add(1,&head1);
|
||||
add(2,&head1);
|
||||
|
||||
Reference in New Issue
Block a user