Can someone explain the normalize function for this hash table, and please provide comments for each line of code: void normalize(string & s) {     string t = "";     for (int i = 0; i < s.length(); i++) {         if (s[i] <= 'Z' && s[i] >= 'A')             s[i] += ('a' - 'A');         if (s[i] <= 'z' && s[i] >= 'a')             t+= s[i];     }     s = t; }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
100%

Can someone explain the normalize function for this hash table, and please provide comments for each line of code:

void normalize(string & s) {
    string t = "";
    for (int i = 0; i < s.length(); i++) {
        if (s[i] <= 'Z' && s[i] >= 'A')
            s[i] += ('a' - 'A');
        if (s[i] <= 'z' && s[i] >= 'a')
            t+= s[i];
    }
    s = t;
}

unsigned int hashStr(const string &  s, int size) {
    unsigned int h = s[0];
    for (int i = 1; i < s.length(); i++)
        //h = (h*i)+s[i];    //My hash
        h+=s[i]*26*i;
        //h+=s[i];
    return h % size ;
}

int main(){
    string word;
    string originalWord;
    int startTableSize;
    int endTableSize;
    int hashResult;
    do{
        cout << "Enter the table starting size\n! to quit" << endl;
        cin >> startTableSize;
        cout << "Enter the table end size\n! to quit" << endl;
        cin >> endTableSize;
        cout << "Enter a word to hash\n! to quit" << endl;
        cin >> word;

        originalWord = word;
        cout << "Before normalize: " << word << endl;
        normalize(word);
        cout << "After normalize: " << word << endl << endl;

        for(int i = startTableSize; i <= endTableSize; i++){
            hashResult = hashStr(word, i);
        cout << "Size " << i << " " << hashResult << endl;
        }
        cout << endl;

    }while(originalWord!="!");
        cout << "bye" << endl;
    return 0;
}

 

Expert Solution
steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Knowledge Booster
Hash Table
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education