Skip to content

Commit

Permalink
Passes the nasty nasty exams
Browse files Browse the repository at this point in the history
  • Loading branch information
William Farmer committed Aug 30, 2016
1 parent 021d097 commit f11108c
Showing 1 changed file with 40 additions and 10 deletions.
50 changes: 40 additions & 10 deletions hw1/will_farmer_hw1.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@ def push(self, number):
self.stack.append(number)

def pop(self):
return self.stack.pop()
try:
return self.stack.pop()
except IndexError:
return "Stack empty."

def check_size(self):
def checkSize(self):
return len(self.stack)


Expand All @@ -28,6 +31,15 @@ def __init__(self, value,
self.right_child = right_child
self.parent = parent

def __getattr__(self, name):
"""Compatibility for bad names"""
if name == 'p':
return self.parent
elif name == 'l':
return self.left_child
elif name == 'r':
return self.right_child

@property
def children(self):
return [self.left_child, self.right_child]
Expand Down Expand Up @@ -68,8 +80,8 @@ def add(self, node_key, parent_key):
parent.right_child = Node(node_key, parent=parent)
else:
print('Parent has two children, not added.')
else:
print('Parent not in tree.')
elif parent is None:
print('Parent not found.')

def checkTree(self, parentValue, root):
"""
Expand Down Expand Up @@ -126,9 +138,25 @@ def delete(self, value):
delete_node = self.findNodeDelete(value, child)
if delete_node:
return delete_node
print("Parent not found.")
# print("Parent not found.")
return False

def printTree(self):
if self.root != None:
print(self.root.value)
for child in self.root.getChildren():
self.printBranch(child)
else:
return

def printBranch(self, root):
if root == None:
return
else:
print(root.value)
for child in root.getChildren():
self.printBranch(child)


# Problem 4 ###################################################################
class Graph:
Expand All @@ -140,7 +168,7 @@ def __str__(self):
for key, value in self.vertices.items():
printstr += (str(key) +
('' if len(value) == 0
else ' -> ({})'.format(', '.join(value))) +
else ' -> ({})'.format(', '.join([str(c) for c in value]))) +
'\n')
return printstr[:-1] # remove trailing newline

Expand All @@ -157,13 +185,15 @@ def addVertex(self, value):

def addEdge(self, node1, node2):
if node1 not in self.nodes or node2 not in self.nodes:
print('One or more vertices not found')
print('One or more vertices not found.')
else:
self.vertices[node1] = sorted([self.vertices[node1] + [node2]])
self.vertices[node2] = sorted([self.vertices[node2] + [node1]])
self.vertices[node1].append(node2)
self.vertices[node1].sort()
self.vertices[node2].append(node1)
self.vertices[node2].sort()

def findVertex(self, value):
if value in self.nodes:
print(self.vertices[value])
else:
print('Node does not exist')
print('Not found.')

0 comments on commit f11108c

Please sign in to comment.