def __init__(self, N=64):
     self.N = N
     self.table = make_array(self.N)
     for i in range(self.N):
         self.table[i] = UnsortedArrayMap()
     self.n = 0
     self.hash_function = ChainingHashTableMap.MADHashFunction(self.N)
Ejemplo n.º 2
0
 def __setitem__(self, key, value):
     i = self.hash_function(key)
     curr_bucket = self.table[i]
     if curr_bucket is None:
         self.table[i] = UnsortedArrayMap.Item(key, value)
         self.n += 1
     elif isinstance(curr_bucket, UnsortedArrayMap.Item):
         if key == curr_bucket.key:
             curr_bucket.value = value
         else:
             first_item = curr_bucket
             curr_bucket = UnsortedArrayMap()
             curr_bucket[first_item.key] = first_item.value
             curr_bucket[key] = value
             self.n += 1
     else:
         old_size = len(curr_bucket)
         curr_bucket[key] = value
         new_size = len(curr_bucket)
         if (new_size > old_size):
             self.n += 1
     if (self.n > self.N):
         self.rehash(2 * self.N)
Ejemplo n.º 3
0
 def __setitem__(self, key, value):
     j = self.hash_function(key)
     if(self.table[j] is None):
         self.table[j] = []
     for data_tup in self.table[j]: #effectively replacing __setitem__ method of UAM
         if data_tup[0].key == key:
             data_tup[0].value = value
             return
     item = UnsortedArrayMap.Item(key, value)
     item_with_spot = (item, self.spot_in_line)
     self.table[j].append(item_with_spot)
     self.data_order.append(key)
     self.n += 1
     self.spot_in_line += 1
     if (self.n > self.N):
         self.rehash(2 * self.N)
Ejemplo n.º 4
0
    def __init__(self, file_name):
        self.all_words = UnsortedArrayMap()
        f = open(file_name, "r")
        count = 0
        for line in f:
            line = line.strip()
            line = line.split(" ")
            if len(line)<2:
                continue
            else:
                for word in line:
                    word = word.lower()
                    word = word.strip(",")
                    if len(word)<1:
                        continue
                    else:
                        try:
                            self.all_words[word]
                            self.all_words[word].append(count)

                        except KeyError:
                            self.all_words[word] = [count]
                        count += 1
    def __init__(self, file_name):
        temp = []
        temp2 = []
        self.data = UnsortedArrayMap()
        file = open(file_name, "r")
        for line in file:
            temp.append(line)
        for i in range(len(temp)):
            temp[i] = temp[i].split(" ")
        for element in temp:
            for innerelement in element:
                innerelement = innerelement.lower()
                if innerelement != "\n":
                    if "\n" in innerelement:
                        innerelement = innerelement[:-1]
                    if innerelement[-1] in ".,?!;:":
                        innerelement = innerelement[:-1]

                    temp2.append(innerelement)
        for i in range(len(temp2)):
            try:
                self.data[temp2[i]].append(i)
            except:
                self.data[temp2[i]] = [i]
Ejemplo n.º 6
0
    def __setitem__(self, key, value):
        i = self.hash_function(key)
        curr_bucket = self.table[i]
        if curr_bucket is None:
            self.table[i] = (key, value)
            self.n += 1
        else:
            if curr_bucket is tuple:
                if key == curr_bucket[0]:
                    self.table[i] = (key, value)
                else:
                    self.table[i] = UnsortedArrayMap()
                    self.table[curr_bucket[0]] = curr_bucket[1]
                    self.table[key] = value
                    self.n += 1

            else:
                old_size = len(curr_bucket)
                curr_bucket[key] = value
                new_size = len(curr_bucket)
                if (new_size > old_size):
                    self.n += 1
        if (self.n > self.N):
            self.rehash(2 * self.N)
Ejemplo n.º 7
0
 def __init__(self, N=64):
     self.N = N
     self.table = [UnsortedArrayMap() for i in range(self.N)]
     self.n = 0
     self.hash_function = ChainingHashTableMap.MADHashFunction(N)
     self.data = DoublyLinkedList()
Ejemplo n.º 8
0
 def __init__(self, N=64):
     self.N = N
     self.table = [UnsortedArrayMap() for i in range(self.N)]
     self.n = 0
     self.queue = ArrayQueue()
     self.hash_function = ChainingHashTableMap.MADHashFunction(N)