Hash_Example

by Taylor Zimmerman

HTML

<form id="form">Enter Phrase.
  <br>
  <textarea id='phrase' rows='10' cols='50'>two too to three tree three two two</textarea>
  <br>
  <input type="button" value="Parse Phrase" id="parse" onClick='parsePhrase();'>
</form>
<div id="output"></div>

JavaScript

var hashTable = new HashTable(); // Global
var binLength = 1;
var binNumber = 1;
var string = "";
function parsePhrase() {
    var phrase = document.getElementById('phrase').value;
    var phraseAsStringArray = phrase.split(' ');
    var len = phraseAsStringArray.length;
    
    for (var i = 0; i < len; i++) {
        //alert(phraseAsStringArray[i]);
        hashTable.addWord(phraseAsStringArray[i]);
    };
    document.getElementById('output').innerHTML = hashTable.toString();
}

function HashTable(){
    // Decide how to store the bins - add here
    // This will contain all the Words
     var BinNode = function (word) {
        this.next = null;
        this.content = word;
       	this.index = binNumber;
    };
   
    this.addWord = function(word) { 
        if(this.head == undefined){
        	hashTable.addNewWord(word);
        }else{
        hashTable.hasWord(word);
        }
        return word;
        
        // You will add a word to the HashTable
        // If word is in table add to Word
        // If not create new one    
    };
    
    this.hasWord = function(word) {
        // Implement
        var addWord = 0;
        var testWord = this.head;
				for(i = 0; i < binLength; i++){
        	if(word == testWord.content){ 
          	var addWord = 1;
          }
          if(testWord.next != undefined){
          testWord = testWord.next;
          }      
        }
        if(addWord == 0){
        	hashTable.addNewWord(word);
        } else {
        	hashTable.addExistingWord(word);
        }
        return word;
        
    };
    
    this.addNewWord = function(word) {
        // Implement
        if (this.head == null) {
            this.head = new BinNode(word);
            binNumber ++;
            var string = binNumber.toString;
            this.index = binNumber;
            return this.head;
        }
        if (this.tail == null) {
            this.tail = new BinNode(word);
            this.head.next = this.tail;
           ...