mirror of
https://github.com/donnemartin/interactive-coding-challenges
synced 2026-01-03 07:58:02 +00:00
Move tree height to a class
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
def height(node):
|
||||
if node is None:
|
||||
return 0
|
||||
return 1 + max(height(node.left),
|
||||
height(node.right))
|
||||
class BstHeight(Bst):
|
||||
|
||||
def height(self, node):
|
||||
if node is None:
|
||||
return 0
|
||||
return 1 + max(self.height(node.left),
|
||||
self.height(node.right))
|
||||
@@ -88,9 +88,11 @@
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def height(node):\n",
|
||||
" # TODO: Implement me\n",
|
||||
" pass"
|
||||
"class BstHeight(Bst):\n",
|
||||
"\n",
|
||||
" def height(self, node):\n",
|
||||
" # TODO: Implement me\n",
|
||||
" pass"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -122,13 +124,13 @@
|
||||
"class TestHeight(object):\n",
|
||||
"\n",
|
||||
" def test_height(self):\n",
|
||||
" root = Node(5)\n",
|
||||
" assert_equal(height(root), 1)\n",
|
||||
" insert(root, 2)\n",
|
||||
" insert(root, 8)\n",
|
||||
" insert(root, 1)\n",
|
||||
" insert(root, 3)\n",
|
||||
" assert_equal(height(root), 3)\n",
|
||||
" bst = BstHeight(Node(5))\n",
|
||||
" assert_equal(bst.height(bst.root), 1)\n",
|
||||
" bst.insert(2)\n",
|
||||
" bst.insert(8)\n",
|
||||
" bst.insert(1)\n",
|
||||
" bst.insert(3)\n",
|
||||
" assert_equal(bst.height(bst.root), 3)\n",
|
||||
"\n",
|
||||
" print('Success: test_height')\n",
|
||||
"\n",
|
||||
|
||||
@@ -91,33 +91,15 @@
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Overwriting height.py\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%%writefile height.py\n",
|
||||
"def height(node):\n",
|
||||
" if node is None:\n",
|
||||
" return 0\n",
|
||||
" return 1 + max(height(node.left), \n",
|
||||
" height(node.right))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"%run height.py"
|
||||
"class BstHeight(Bst):\n",
|
||||
"\n",
|
||||
" def height(self, node):\n",
|
||||
" if node is None:\n",
|
||||
" return 0\n",
|
||||
" return 1 + max(self.height(node.left),\n",
|
||||
" self.height(node.right))"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -129,7 +111,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@@ -150,13 +132,13 @@
|
||||
"class TestHeight(object):\n",
|
||||
"\n",
|
||||
" def test_height(self):\n",
|
||||
" root = Node(5)\n",
|
||||
" assert_equal(height(root), 1)\n",
|
||||
" insert(root, 2)\n",
|
||||
" insert(root, 8)\n",
|
||||
" insert(root, 1)\n",
|
||||
" insert(root, 3)\n",
|
||||
" assert_equal(height(root), 3)\n",
|
||||
" bst = BstHeight(Node(5))\n",
|
||||
" assert_equal(bst.height(bst.root), 1)\n",
|
||||
" bst.insert(2)\n",
|
||||
" bst.insert(8)\n",
|
||||
" bst.insert(1)\n",
|
||||
" bst.insert(3)\n",
|
||||
" assert_equal(bst.height(bst.root), 3)\n",
|
||||
"\n",
|
||||
" print('Success: test_height')\n",
|
||||
"\n",
|
||||
@@ -172,7 +154,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": 4,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
|
||||
@@ -4,13 +4,13 @@ from nose.tools import assert_equal
|
||||
class TestHeight(object):
|
||||
|
||||
def test_height(self):
|
||||
root = Node(5)
|
||||
assert_equal(height(root), 1)
|
||||
insert(root, 2)
|
||||
insert(root, 8)
|
||||
insert(root, 1)
|
||||
insert(root, 3)
|
||||
assert_equal(height(root), 3)
|
||||
bst = BstHeight(Node(5))
|
||||
assert_equal(bst.height(bst.root), 1)
|
||||
bst.insert(2)
|
||||
bst.insert(8)
|
||||
bst.insert(1)
|
||||
bst.insert(3)
|
||||
assert_equal(bst.height(bst.root), 3)
|
||||
|
||||
print('Success: test_height')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user