Question: python question: def comparison_total(bst): ------------------------------------------------------- Sums the comparison values of all Letter objects in bst. ------------------------------------------------------- Parameters: bst - a binary search tree of

python

question:

def comparison_total(bst): """ ------------------------------------------------------- Sums the comparison values of all Letter objects in bst. ------------------------------------------------------- Parameters: bst - a binary search tree of Letter objects (BST) Returns: total - the total of all comparison fields in the bst Letter objects (int) ----------

rest of functions:

def comparisons_get(file, bst): file.seek(0) for line in file: for c in line: if c.isalpha(): char = comparisonLetter(c.upper()) print(bst.retrieve(char)) line = file.readline().strip() return

class comparisonLetter:

def __init__(self, comparisonLetter): assert comparisonLetter.isalpha() and comparisonLetter.isupper(), "Invalid comparisonLetter"

self.comparisonLetter = comparisonLetter self.count = 0 self.comparisons = 0 return

def __str__(self): return "{}: {}, {}".format(self.comparisonLetter, self.count, self.comparisons)

def __eq__(self, rs): self.count += 1 self.comparisons += 1 result = self.comparisonLetter == rs.comparisonLetter return result

def __lt__(self, rs): self.comparisons += 1 result = self.comparisonLetter < rs.comparisonLetter return result

def __le__(self, rs): self.comparisons += 1 result = self.comparisonLetter <= rs.comparisonLetter return result

class BST:

def __init__(self): self._root = None self._count = 0 self ._comparsions = 0 return

def is_empty(self): return self._root is None

def __len__(self): return self._count def __comparisons__(self): return self._comparisons

def insert(self, dvalue): self._root, inserted = self._insert_aux(self._root, dvalue) return inserted

def _insert_aux(self, node, dvalue): if node is None: node = _BSTNode(dvalue) self._count += 1 inserted = True elif node._dvalue > dvalue: node._left, inserted = self._insert_aux(node._left, dvalue) elif node._dvalue < dvalue: node._right, inserted = self._insert_aux(node._right, dvalue) else: inserted = False

if inserted: node._update_height() return node, inserted

def retrieve(self, key): assert self._root is not None, "Cannot retrieve from an empty BST"

node = self._root dvalue = None

while node is not None and dvalue is None:

if node._dvalue > key: node = node._left elif node._dvalue < key: node = node._right elif node._dvalue == key: dvalue = deepcopy(node._dvalue) return dvalue,self.comparisons

mynode=BST() a= comparisons_get(file, bst) print("no of comparison for ",a)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!