src/chaining_hash.py
author Eugen Sawin <sawine@me73.com>
Tue, 19 Jul 2011 00:24:38 +0200
changeset 14 11c55592ac33
parent 4 7301096bb430
permissions -rw-r--r--
First draft of ex9.
     1 """
     2 Author: Eugen Sawin <sawine@informatik.uni-freiburg.de>
     3 """
     4 
     5 def main():    
     6     args = parse_arguments()
     7     table = {}
     8     for key in args.values.split():
     9         table = chained_hash(int(key), table, args.table_size)
    10     for k in range(args.table_size):
    11         if k not in table:
    12             table[k] = []
    13         print "%i: %s" % (k, table[k])
    14 
    15 def chained_hash(k, table, size):
    16     code = k % size
    17     if code in table:
    18         table[code].append(k)
    19     else:
    20         table[code] = [k]
    21     return table
    22 
    23 from argparse import ArgumentParser
    24 
    25 def parse_arguments():
    26     parser = ArgumentParser(description="")
    27     parser.add_argument("table_size", type=int, help="size of the hash table")
    28     parser.add_argument("values", help="values")    
    29     return parser.parse_args()
    30 
    31 if __name__ == "__main__":
    32     main()