Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. //#define SIZE 10;
  5. int SIZE;
  6. struct Node
  7. {
  8. int val;
  9. Node * next;
  10. };
  11. struct Linkedlist
  12. {
  13. private :
  14. Node ** hashTable;
  15. public:
  16. void init(int s)
  17. {
  18. SIZE = s;
  19. hashTable = (Node**)calloc(SIZE,sizeof(Node*));
  20. }
  21. int hashFunc(int key)
  22. {
  23. return key%SIZE;
  24. }
  25. void insertvalue(int v)
  26. {
  27. Node * newnode = new Node;
  28. newnode->val = v;
  29. newnode->next = NULL;
  30. int index = hashFunc(v);
  31. if(hashTable[index]==NULL)
  32. {
  33. hashTable[index] = (Node*)malloc(sizeof(Node*));
  34. hashTable[index] = newnode;
  35. }
  36. else
  37. {
  38. Node * temp = hashTable[index];
  39. newnode->next = temp;
  40. hashTable[index] = newnode;
  41. }
  42. }
  43. int searchValue(int v)
  44. {
  45. int index = v % SIZE;
  46. bool flag=0;
  47. Node * temp = hashTable[index];
  48. while(temp!=NULL)
  49. {
  50. if(temp->val==v)
  51. {
  52. cout <<"Found"<<endl;
  53. flag=1;
  54. break;
  55. }
  56. temp=temp->next;
  57. }
  58. if(flag==0)
  59. cout << "Not found"<<endl;
  60. }
  61. void display()
  62. {
  63. for (int i=0;i<SIZE ;i++ )
  64. {
  65. cout << i<<"-> " ;
  66. Node * temp = hashTable[i];
  67. while(temp!=NULL)
  68. {
  69. cout <<temp->val<<" ";
  70. temp=temp->next;
  71. }
  72. cout << endl;
  73. }
  74. }
  75. };
  76. int main()
  77. {
  78. Linkedlist l1;
  79. l1.init(10);
  80. l1.insertvalue(22);
  81. l1.insertvalue(32);
  82. l1.insertvalue(21);
  83. l1.insertvalue(25);
  84. l1.insertvalue(27);
  85. /// l1.insertvalue(2);
  86. l1.display();
  87. l1.searchValue(32);
  88. l1.searchValue(2);
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement