Hash Compression

Assignment 9

by Alan Harris

HTML

<form id="form">Enter a Phrase.
    <br>
    <textarea id='phrase' rows='10' cols='50'>I want what I want and I know what I want.</textarea>
    <br>
    <input type="button" value="Parse Phrase" id="parse" onClick='parsePhrase();'>
</form>
<div id="output"></div>

CSS

button:focus {
  border: 1px solid black;
  padding: 4px 4px;
}

button {
    background-color: grey;
    border: 1px solid black;
    color: white;
    padding: 4px 8px;
    text-decoration: none;
    margin: 4px 2px;
    }
 button:hover {
   background-color:black;
 }

JavaScript

var hashTable = new HashTable(); // Global
var ANode = new Node();
var aList = new List1();


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]);
    }
}



function Node(input) {
//	this.id = null;
  this.content = input;
  this.next = null;
  this.last = null;
  return this;
}  

function List1(input) {
	this.head = new Node(input);
  this.length = 1;
  this.last = this.head;
  return this;
}
List1.prototype.add = function(ANode) {
	var element = new Node();
  element.content = ANode;
  
	if (this.head == null){
  	this.head = element;
    this.length = 1;
    return element;
  }
  if (this.tail == null) {
  	this.tail = element;
    this.tail.prev = this.head;
    this.head.next = this.tail;
    this.length++;
    return element;
  }
  this.tail.next = element;
  element.prev = this.tail;
  this.tail = element;
  return element;
}


function HashTable(){
    // Decide how to store the bins - add here
    // This will contain all the Words
		//USE LIST to store bins
   // this.bins = []; // using array as example (list is better)
    this.addWord = function(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
        return word;
    };
    
    this.addNewWord = function(word) {
        // Implement
        return word;
    };
    
    this.addExistingWord  = function(word) {
        // Adds Word to structure that already exists
        return word;
    };
}

function Word(word) {
    this.word = word; // store word
    this.indexes = []; // using array to store indexes
    
    // Probably want some logic here

    }