diff --git a/a_letter_tree.py b/a_letter_tree.py index 58e1a71..f49b632 100644 --- a/a_letter_tree.py +++ b/a_letter_tree.py @@ -1,7 +1,5 @@ import time -fruit_list = ["apricot","blood orange","currant","durian","egg fruit","fig","guava", - "hawthorne","jujube","kiwi","lychee","mandarin","nectarine","olive","persimmon","quandong","rambutan","star fruit", - "tangor","ugli fruit","vanilla","water chestnut","ximenia","yuzu","zhe"] +import random class letterLeaf: def __init__(self,letter,wordFruit): @@ -10,14 +8,12 @@ class letterLeaf: self.letter = letter self.wordFruit = wordFruit -COUNT = [10] - -def print2DUtil_flat(root, space,growth_rate): +def print2DUtil_flat(root, space,growth_rate, COUNT): if (root == None) : return space += COUNT[0] - print2DUtil_flat(root.rightAlphabet, space,growth_rate) + print2DUtil_flat(root.rightAlphabet, space,growth_rate, COUNT) print() @@ -32,11 +28,11 @@ def print2DUtil_flat(root, space,growth_rate): print(root.wordFruit) time.sleep(growth_rate) - print2DUtil_flat(root.leftAlphabet, space,growth_rate) + print2DUtil_flat(root.leftAlphabet, space,growth_rate, COUNT) def print2D(root, growth_rate): print("here is a tree that's laying on the ground: ") - print2DUtil_flat(root, 0, growth_rate) + print2DUtil_flat(root, 0, growth_rate, COUNT=[10]) def grepFirstLetter(word): firstLetter = word[0] @@ -66,25 +62,29 @@ def insertLeaf(root,wordFruit): return y -import random +if __name__ == "__main__": -root = None + fruit_list = ["apricot","blood orange","currant","durian","egg fruit","fig","guava", + "hawthorne","jujube","kiwi","lychee","mandarin","nectarine","olive","persimmon","quandong","rambutan","star fruit", + "tangor","ugli fruit","vanilla","water chestnut","ximenia","yuzu","zhe"] -random_fruit = random.choice(fruit_list) -root = insertLeaf(root, random_fruit) -fruit_list.remove(random_fruit) -len_list = (len(fruit_list)) + root = None -while len_list > 0: random_fruit = random.choice(fruit_list) - insertLeaf(root,random_fruit) + root = insertLeaf(root, random_fruit) fruit_list.remove(random_fruit) - len_list -= 1 + len_list = (len(fruit_list)) + + while len_list > 0: + random_fruit = random.choice(fruit_list) + insertLeaf(root,random_fruit) + fruit_list.remove(random_fruit) + len_list -= 1 -def ask_input(): - growth_rate = int(input("Enter growth rate value for tree in seconds: ")) - return growth_rate + def ask_input(): + growth_rate = int(input("Enter growth rate value for tree in seconds: ")) + return growth_rate -growth_rate = ask_input() -print2D(root, growth_rate) + growth_rate = ask_input() + print2D(root, growth_rate) diff --git a/notebooks/a_longan_tree.ipynb b/a_longan_tree.ipynb similarity index 100% rename from notebooks/a_longan_tree.ipynb rename to a_longan_tree.ipynb diff --git a/a_longan_tree.py b/a_longan_tree.py new file mode 100644 index 0000000..e69de29 diff --git a/archive/a_bonary_tree.ipynb b/archive/a_bonary_tree.ipynb deleted file mode 100644 index b23f43a..0000000 --- a/archive/a_bonary_tree.ipynb +++ /dev/null @@ -1,303 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# a bonary tree" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#***********************************************************************\n", - "#** a bo-binary tree *\n", - "#** for and inspired by Wang Xiaobo (1952-1997), writer and programmer.*\n", - "#** \"我也自做了词组功能,是棵B树,我觉得自写的软件自用,感觉是最好的。\" *\n", - "#** \"I created a word feature with a binary tree strucutre, *\n", - "#** and I feel best about using a program you created yourself.\" *\n", - "#** read more in archival documentation(Chinese): *\n", - "#** https://blog.csdn.net/weixin_33697898/article/details/93356187 *\n", - "#** *\n", - "#***********************************************************************" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 思维的乐趣 \n", - "### on discourse \n", - "### quotes from 《我的精神家园》\n", - "谈到思想的乐趣,我就想到我父亲的遭遇。我父亲是一位哲学教授,在五六十年代从事思维史的研究。在老年时,他告诉我自己一生的学术经历,就如一部恐怖电影。每当他企图立论时,总要在大一统的思想体系里找到自己的位置,就如一只老母鸡要在一个大搬家的宅院里找地方孵蛋一样。结果他虽然热爱科学而且很努力,在一生中却没有得到思维的乐趣,之收获了无数的恐慌。他一生的探索,只剩下了一些断壁残垣,收到一本名为《逻辑探索》的书里,在他身后出版。\n", - "\n", - "我在沉默中过了很多年:插队、当工人、当大学生,后来又在大学里任过教。当教师的人保持沉默似不可能,但我教的是技术性的课程,在讲台上只讲技术性的话,下了课我就走人。找我看,不管干什么都可以保持沉默。当然,我还有一个终身爱好,就是写小说。但是写好了不拿去发表,同样也保持了沉默。至于沉默的理由,很是简单。那就是信不过话语圈。从我短短的人生经历看,它是一座声名狼藉的疯人院。当时我怀疑的不是说过亩产三十万斤粮、炸过精神原子弹的那个话语圈,而是一切话语圈子。\n", - "\n", - "还有一些人,因为种种原因,对于话语的世界有某种厌恶之情。我属于这最后一种。作为最后一种人,也有义务谈自己的所见所闻。\n", - "\n", - "王小波(1997).《我的精神家园》.北京:文化艺术出版社.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "#Create a proof of concept dictionary tree that looks for hong(3) fu(2)" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from anytree import Node, RenderTree\n", - "h = Node(\"h\")\n", - "o = Node(\"o\", parent=h)\n", - "n = Node(\"n\", parent=o)\n", - "g = Node(\"g\", parent=n)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Node('/h')\n", - "Node('/h/o/n/g')\n", - "h\n", - "└── o\n", - " └── n\n", - " └── g\n" - ] - } - ], - "source": [ - "#print node\n", - "print(h)\n", - "print(g)\n", - "\n", - "#print tree\n", - "for pre, fill, node in RenderTree(h):\n", - "\tprint(\"%s%s\" %(pre,node.name))" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "f\n", - "└── u\n" - ] - } - ], - "source": [ - "f = Node(\"f\")\n", - "u = Node(\"u\", parent = f)\n", - "for pre, fill, node in RenderTree(f):\n", - "\tprint(\"%s%s\" %(pre,node.name))\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "y\n", - "└── e\n" - ] - } - ], - "source": [ - "y = Node(\"y\")\n", - "e = Node(\"e\", parent = y)\n", - "for pre, fill, node in RenderTree(y):\n", - "\tprint(\"%s%s\" %(pre,node.name))" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "b\n", - "└── e\n", - " └── n\n" - ] - } - ], - "source": [ - "b = Node(\"b\")\n", - "e = Node(\"e\", parent = b)\n", - "n = Node(\"n\", parent = e)\n", - "for pre, fill, node in RenderTree(b):\n", - "\tprint(\"%s%s\" %(pre,node.name))" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], - "source": [ - "def printTree(root):\n", - " for pre, fill, node in RenderTree(root):\n", - " print(\"%s%s\" %(pre,node.name))" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "h\n", - "└── o\n", - " └── n\n", - " └── g\n", - "红\n", - "\n", - "f\n", - "└── u\n", - "拂\n", - "\n", - "y\n", - "└── e\n", - "夜\n", - "\n", - "b\n", - "└── e\n", - " └── n\n", - "奔\n", - "\n" - ] - } - ], - "source": [ - "tree_list = [h,f,y,b]\n", - "红拂夜奔 = [\"红\",\"拂\",\"夜\",\"奔\"]\n", - "counter = 0\n", - "for tree in tree_list:\n", - " printTree(tree)\n", - " print(红拂夜奔[counter])\n", - " counter = counter + 1\n", - " print()" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# an alphabet binary search tree\n", - "import string\n", - "alphabet_s = string.ascii_lowercase\n", - "alphabet_l = list(alphabet_s)\n", - "#print(alphabet_l)\n", - "# add nodes manually, starting from m " - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import IPython.display \n", - "Video('vid/wang_interview.mp4')" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# transcription of wang's interview in Chinese\n", - "# autotranslate that into English for non-Chinese readers" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "数据结构是思维的形状的一种表现方式\n", - "the structure of data may be one representation of the form of thought " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Wang Xiaobo (1952-1997), writer and programmer.
\n", - "\"我也自做了词组功能,是棵B树,我觉得自写的软件自用,感觉是最好的。\"
\n", - "\"I created a word feature with a binary tree strucutre, and I feel best about using a program you created yourself.\"\n", - "read more in archival documentation(Chinese):
\n", - "https://blog.csdn.net/weixin_33697898/article/details/93356187" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/archive/a_conversation_tree.ipynb b/archive/a_conversation_tree.ipynb deleted file mode 100644 index 463ace6..0000000 --- a/archive/a_conversation_tree.ipynb +++ /dev/null @@ -1,79 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "666a35e1-435d-4555-8193-9258ff568e21", - "metadata": {}, - "outputs": [], - "source": [ - "class letterLeaf:\n", - " def __init__(self,question):\n", - " self.yes = None\n", - " self.no = None\n", - " self.question = question\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "254b714a-2504-4cc0-9a78-21d406ddbb2f", - "metadata": {}, - "outputs": [], - "source": [ - "# tree traversals, here to print stuff \n", - "def inorder(treeName):\n", - " if treeName:\n", - " inorder(treeName.yes)\n", - " print(treeName.question)\n", - " inorder(treeName.no)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e8512457-7944-4604-92c7-29f90ab6c3db", - "metadata": {}, - "outputs": [], - "source": [ - "# interactive user input utility \n", - "def saysYes(ques):\n", - " while True:\n", - " ans = input(ques)\n", - " ans = ans[0:1].lower()\n", - " if ans == 'y': return True\n", - " else : return False" - ] - }, - { - "cell_type": "markdown", - "id": "8415d1d2-211a-4e82-b331-85527e8c1510", - "metadata": {}, - "source": [ - "reference\n", - "https://web.stonehill.edu/compsci/CS211/Assignmenta%202015/TreeAssignment.pdf" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/archive/a_fruit_tree_with_hanging_pictures.ipynb b/archive/a_fruit_tree_with_hanging_pictures.ipynb deleted file mode 100644 index 8fae0a0..0000000 --- a/archive/a_fruit_tree_with_hanging_pictures.ipynb +++ /dev/null @@ -1,750 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "9da34557-037a-436f-bbaa-d332057cbe18", - "metadata": {}, - "source": [ - "# a fruit tree with a variety of fruits hanging, each enclosed in a picture frame. " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "01acaa97-796a-4e34-9ee3-a46e71493d9d", - "metadata": {}, - "outputs": [], - "source": [ - "fruit_list = [\"apricot\",\"blood_orange\",\"currant\",\"durian\",\"egg_fruit\",\"fig\",\"guava\",\n", - " \"hawthorne\",\"jujube\",\"kiwi\",\"lychee\",\"mandarin\",\"nectarine\",\"olive\",\"persimmon\",\"quandong\",\"rambutan\",\"star_fruit\",\n", - " \"tangor\",\"ugli_fruit\",\"vanilla\",\"water_chestnut\",\"ximenia\",\"yuzu\",\"zhe\"]\n", - "# additionally: longan yumberry sugarcane " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "08ab8673-9b5c-4bd0-9fac-72796e831b94", - "metadata": {}, - "outputs": [], - "source": [ - "# build the fruit motley tree with extra utilities than the letter tree" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "id": "9c7187e4-0c49-4908-a169-775e6e475f94", - "metadata": {}, - "outputs": [], - "source": [ - "class letterLeaf:\n", - " def __init__(self,wordFruit,path):\n", - " self.leftAlphabet = None\n", - " self.rightAlphabet = None\n", - " self.wordFruit = wordFruit\n", - " # try using a list structure to contain the words in this node? \n", - " self.path = path" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "id": "11dbf280-6c61-4020-bfe7-e85a723697db", - "metadata": {}, - "outputs": [], - "source": [ - "# printing tree utility \n", - "# the display cannot indent?\n", - "from IPython.display import Image\n", - "COUNT = [10]\n", - "\n", - "# print a flat lying tree\n", - "# speculation: this is a recursion that prints the right leaf until there is nothing left\n", - "def print2DUtil_flat(root, space) :\n", - " # Base case\n", - " if (root == None) :\n", - " return\n", - " # Increase distance between levels\n", - " space += COUNT[0]\n", - " print2DUtil_flat(root.rightAlphabet, space)\n", - " print()\n", - " \n", - " for i in range(COUNT[0], space):\n", - " print(end = \" \")\n", - " url_tree = root.path\n", - " i = Image(url= url_tree, width=30, height=30)\n", - " display(i)\n", - "\n", - " for i in range(COUNT[0], space):\n", - " print(end = \" \")\n", - " print(root.wordFruit)\n", - " print2DUtil_flat(root.leftAlphabet, space)\n", - "\n", - " # Wrapper over print2DUtil()\n", - "def print2D(root) :\n", - " #Pass initial space count as 0\n", - " print(\"here is a tree that's laying on the ground: \")\n", - " # import image module\n", - " # get the image\n", - " print2DUtil_flat(root, 0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "id": "d0bcd376-491e-48e9-8bd9-e10d91346d7f", - "metadata": {}, - "outputs": [], - "source": [ - "def urljoin(wordFruit):\n", - " url = \"images/pic_tree_fruit_img/\" + wordFruit + \".png\"\n", - " return url " - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "id": "7a12a00f-f7b0-4234-a06c-54c6f3d1daf1", - "metadata": {}, - "outputs": [], - "source": [ - "def insertLeaf(root,wordFruit):\n", - " #create new leaf \n", - " url = urljoin(wordFruit)\n", - " newleaf = letterLeaf(wordFruit,url)\n", - " #print(\"creating leaf with word = {} url = {}\".format(newleaf.wordFruit,newleaf.path))\n", - "\n", - " # python pointer implementation\n", - " # a root pointer \n", - " x = root\n", - " # pointer y maintains the trailing\n", - " # pointer of x\n", - " # Pointer to start traversing from root\n", - " # and traverses downward path to search\n", - " # where the new node to be inserted\n", - " x = root\n", - "\n", - " # Pointer y maintains the trailing\n", - " # pointer of x\n", - " y = None\n", - "\n", - " while (x != None):\n", - " y = x\n", - " if (wordFruit < x.wordFruit):\n", - " x = x.leftAlphabet\n", - " else:\n", - " x = x.rightAlphabet\n", - " \n", - " # If the root is None i.e the tree is\n", - " # empty. The new node is the root node\n", - " if (y == None):\n", - " y = newleaf\n", - "\n", - " # If the new key is less then the leaf node key\n", - " # Assign the new node to be its left child\n", - " elif (wordFruit < y.wordFruit):\n", - " y.leftAlphabet = newleaf\n", - "\n", - " # else assign the new node its\n", - " # right child\n", - " else:\n", - " y.rightAlphabet = newleaf\n", - "\n", - " # Returns the pointer where the\n", - " # new node is inserted\n", - " return y\n", - "\n", - "\n", - "# A utility function to do inorder\n", - "# traversal of BST" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "id": "dc2230e9-0831-4e3c-93b8-c96d20fd0525", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "here is a tree that's laying on the ground: \n", - "\n" - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "zhe\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " yuzu\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " ximenia\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " water_chestnut\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " vanilla\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " ugli_fruit\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " tangor\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " star_fruit\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " rambutan\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " quandong\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " persimmon\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " olive\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " nectarine\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " mandarin\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " lychee\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " kiwi\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " jujube\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " hawthorne\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " guava\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " fig\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " egg_fruit\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " durian\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " currant\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " blood_orange\n", - "\n", - " " - ] - }, - { - "data": { - "text/html": [ - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - " apricot\n" - ] - } - ], - "source": [ - "# same deal, insert everything in the list until it's empty \n", - "import random\n", - "\n", - "root = None\n", - "# pick a random letter in the alphabet\n", - "random_fruit = random.choice(fruit_list)\n", - "#print(random_letter)\n", - "#insert it into the tree, insert the first one \n", - "root = insertLeaf(root, random_fruit)\n", - "# remove that letter from list\n", - "fruit_list.remove(random_fruit)\n", - "#print(fruit_list)\n", - "len_list = (len(fruit_list))\n", - "#print(len_list)\n", - "while len_list > 0:\n", - " random_fruit = random.choice(fruit_list)\n", - " insertLeaf(root,random_fruit)\n", - " fruit_list.remove(random_fruit)\n", - " #print(\"inserting and removing letter {} \".format(random_letter))\n", - " len_list -= 1\n", - "# keep inserting until the list is empty \n", - "# print tree \n", - "print2D(root)\n", - "# can try multiple times for different tree configurations\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/archive/a_letter_tree.ipynb b/archive/a_letter_tree.ipynb deleted file mode 100644 index 9fa8d2f..0000000 --- a/archive/a_letter_tree.ipynb +++ /dev/null @@ -1,405 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "4708c5dc-a1e8-42e2-8702-ecea9513d54b", - "metadata": {}, - "source": [ - "# a binary tree of leaves of letters" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "906fc548-a2a5-411b-ad60-9e93e88bf7f5", - "metadata": {}, - "outputs": [], - "source": [ - "# http://syllabus.cs.manchester.ac.uk/ugt/2021/COMP26912/lab/ex5.html\n", - "# https://web.stanford.edu/class/archive/cs/cs106x/cs106x.1174/assn/twentyOneQuestions.html\n", - "# https://www.openbookproject.net/py4fun/animal/animal.html" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "578e93f8-e04f-4b01-a482-ebc78cf2c103", - "metadata": {}, - "outputs": [], - "source": [ - "# each leaf stores a letter to be asked\n", - "class letterLeaf:\n", - " def __init__(self,letter):\n", - " self.leftAlphabet = None\n", - " self.rightAlphabet = None\n", - " self.letter = letter\n", - " # try using a list structure to contain the words in this node? \n", - " self.words = []" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "fa8e3d45-ea21-47e1-9a5a-256e5e7ebed1", - "metadata": {}, - "outputs": [], - "source": [ - "# tree traversals, here to print stuff \n", - "def inorder(treeName):\n", - " if treeName:\n", - " inorder(treeName.leftAlphabet)\n", - " print(treeName.letter)\n", - " inorder(treeName.rightAlphabet)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "0c75f820-46c4-46af-b5d9-b837cb055b55", - "metadata": {}, - "outputs": [], - "source": [ - "# printing tree utility \n", - "# this segment is modified from Shubham Singh(SHUBHAMSINGH10)'s contribution \n", - "\n", - "# spacer\n", - "COUNT = [10]\n", - "\n", - "# print a flat lying tree\n", - "# speculation: this is a recursion that prints the right leaf until there is nothing left\n", - "def print2DUtil_flat(root, space) :\n", - " # Base case\n", - " if (root == None) :\n", - " return\n", - " # Increase distance between levels\n", - " space += COUNT[0]\n", - " # Process right leaf/branch/child first\n", - " print2DUtil_flat(root.rightAlphabet, space)\n", - " print()\n", - " for i in range(COUNT[0], space):\n", - " print(end = \" \")\n", - " print(root.letter)\n", - " # Process left child\n", - " print2DUtil_flat(root.leftAlphabet, space)\n", - "\n", - " # Wrapper over print2DUtil()\n", - "def print2D(root) :\n", - " #Pass initial space count as 0\n", - " print(\"here is a tree that's laying on the ground: \")\n", - " print2DUtil_flat(root, 0)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "5f27d6d6-3019-4714-98d0-9650f1e087bb", - "metadata": {}, - "outputs": [], - "source": [ - "# utility to read the first letter of the input word \n", - "# press enter key, otherwise notebook will be pending\n", - "def grepFirstLetter():\n", - " word = input()\n", - " firstLetter = word[0]\n", - " return firstLetter\n", - " #print(\"the letter starts with : {}, and will be inserted under the {} leaf\".format(firstLetter, firstLetter))" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "11081ff6-0295-4329-885c-6e6ddfddfcbf", - "metadata": {}, - "outputs": [], - "source": [ - "def insertLeaf(root,firstLetter):\n", - " #create new leaf \n", - " letterLeaf(firstLetter)\n", - " # python pointer implementation\n", - " # a root pointer \n", - " x = root\n", - " # pointer y maintains the trailing\n", - " # pointer of x\n", - " y = None\n", - " # traversal \n", - " # while x != none means the pointer can keep traversing\n", - " while(x != None):\n", - " y = x #trailing pointer points to x \n", - " if (firstLetter < x.letter):\n", - " x = x.leftAlphabet\n", - " else:\n", - " x = x.rightAlphabet\n", - " # insert leaf at root when tree is empty \n", - " if (y == None):\n", - " y = letterLeaf \n", - " # do string comparison, insert at left side of the alphabetTree \n", - " elif (firstLetter < x.letter):\n", - " x.leftAlphabet = letterLeaf\n", - " # insert at right side of the alphabetTree\n", - " else:\n", - " x.rightAlphabet = letterLeaf\n", - " return y\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "22301756-70e0-4ff7-b9bb-4f59c458058b", - "metadata": {}, - "outputs": [], - "source": [ - "# print binary tree in 2D copied from sample program\n", - "COUNT = [10]\n", - "def print2DUtil(root, space) :\n", - "\n", - " # Base case\n", - " if (root == None) :\n", - " return\n", - "\n", - " # Increase distance between levels\n", - " space += COUNT[0]\n", - "\n", - " # Process right child first\n", - " print2DUtil(root.rightAlphabet, space)\n", - "\n", - " # Print current node after space\n", - " # count\n", - " print()\n", - " for i in range(COUNT[0], space):\n", - " print(end = \" \")\n", - " print(root.letter)\n", - "\n", - " # Process left child\n", - " print2DUtil(root.leftAlphabet, space)\n", - "\n", - "# Wrapper over print2DUtil()\n", - "def print2D(root) :\n", - " \n", - " # space=[0]\n", - " # Pass initial space count as 0\n", - " print2DUtil(root, 0)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "883373d0-cccc-4497-b9ff-af45670cb1ce", - "metadata": {}, - "outputs": [], - "source": [ - "# A utility function to insert a new\n", - "# Node with given key in BST\n", - "def insert(root, letter):\n", - "\n", - " # Create a new Node containing\n", - " # the new element\n", - " newleaf = letterLeaf(letter)\n", - "\n", - " # Pointer to start traversing from root\n", - " # and traverses downward path to search\n", - " # where the new node to be inserted\n", - " x = root\n", - "\n", - " # Pointer y maintains the trailing\n", - " # pointer of x\n", - " y = None\n", - "\n", - " while (x != None):\n", - " y = x\n", - " if (letter < x.letter):\n", - " x = x.leftAlphabet\n", - " else:\n", - " x = x.rightAlphabet\n", - " \n", - " # If the root is None i.e the tree is\n", - " # empty. The new node is the root node\n", - " if (y == None):\n", - " y = newleaf\n", - "\n", - " # If the new key is less then the leaf node key\n", - " # Assign the new node to be its left child\n", - " elif (letter < y.letter):\n", - " y.leftAlphabet = newleaf\n", - "\n", - " # else assign the new node its\n", - " # right child\n", - " else:\n", - " y.rightAlphabet = newleaf\n", - "\n", - " # Returns the pointer where the\n", - " # new node is inserted\n", - " return y\n", - "\n", - "# A utility function to do inorder\n", - "# traversal of BST" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "0f0bed93-2858-471b-b827-35f66da519b8", - "metadata": {}, - "outputs": [], - "source": [ - "def Inorder(root) :\n", - "\n", - " if (root == None) :\n", - " return\n", - " else:\n", - " Inorder(root.leftAlphabet)\n", - " print( root.letter, end = \" \" )\n", - " Inorder(root.rightAlphabet)" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "e1884b95-8b53-49d6-b56c-a7226f14937e", - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'w', 'x', 'y', 'z']\n", - "\n", - " z\n", - "\n", - " y\n", - "\n", - " x\n", - "\n", - " w\n", - "\n", - "v\n", - "\n", - " u\n", - "\n", - " t\n", - "\n", - " s\n", - "\n", - " r\n", - "\n", - " q\n", - "\n", - " p\n", - "\n", - " o\n", - "\n", - " n\n", - "\n", - " m\n", - "\n", - " l\n", - "\n", - " k\n", - "\n", - " j\n", - "\n", - " i\n", - "\n", - " h\n", - "\n", - " g\n", - "\n", - " f\n", - "\n", - " e\n", - "\n", - " d\n", - "\n", - " c\n", - "\n", - " b\n", - "\n", - " a\n" - ] - } - ], - "source": [ - "#Driver Code\n", - "import random\n", - "#if __name__ == '__main__':\n", - "\n", - "alphabet = [\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\"]\n", - "root = None\n", - "# pick a random letter in the alphabet\n", - "random_letter = random.choice(alphabet)\n", - "#print(random_letter)\n", - "#insert it into the tree, insert the first one \n", - "root = insert(root, random_letter)\n", - "# remove that letter from list\n", - "alphabet.remove(random_letter)\n", - "print(alphabet)\n", - "len_list = (len(alphabet))\n", - "#print(len_list)\n", - "while len_list > 0:\n", - " random_letter = random.choice(alphabet)\n", - " insert(root,random_letter)\n", - " alphabet.remove(random_letter)\n", - " #print(\"inserting and removing letter {} \".format(random_letter))\n", - " len_list -= 1\n", - "# keep inserting until the list is empty \n", - "# print tree \n", - "print2D(root)\n", - "# can try multiple times for different tree configurations" - ] - }, - { - "cell_type": "code", - "execution_count": 329, - "id": "d222d70f-2771-45be-9ac1-7ac579a242cb", - "metadata": {}, - "outputs": [], - "source": [ - "# print a vertical standing tree \n", - "# https://www.geeksforgeeks.org/print-level-order-traversal-line-line/\n", - "# https://www.geeksforgeeks.org/level-order-tree-traversal/" - ] - }, - { - "cell_type": "code", - "execution_count": 323, - "id": "39d68b3e-064e-4ed6-b10d-c7250a7034e3", - "metadata": {}, - "outputs": [], - "source": [ - "# a morse code tree\n", - "# https://www.101computing.net/morse-code-using-a-binary-tree/" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "f7205015-dd4b-48bf-94c4-be0f96d8988a", - "metadata": {}, - "outputs": [], - "source": [ - "#firstLetter = grepFirstLetter()\n", - "#print(firstLetter)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.7" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/archive/pic_tree_fruit_img/apricot.png b/archive/pic_tree_fruit_img/apricot.png deleted file mode 100644 index 8c69165..0000000 Binary files a/archive/pic_tree_fruit_img/apricot.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/blood_orange.png b/archive/pic_tree_fruit_img/blood_orange.png deleted file mode 100644 index cefff0e..0000000 Binary files a/archive/pic_tree_fruit_img/blood_orange.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/currant.png b/archive/pic_tree_fruit_img/currant.png deleted file mode 100644 index 93775c9..0000000 Binary files a/archive/pic_tree_fruit_img/currant.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/durian.png b/archive/pic_tree_fruit_img/durian.png deleted file mode 100644 index 91503a2..0000000 Binary files a/archive/pic_tree_fruit_img/durian.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/egg_fruit.png b/archive/pic_tree_fruit_img/egg_fruit.png deleted file mode 100644 index ac6bcc3..0000000 Binary files a/archive/pic_tree_fruit_img/egg_fruit.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/fig.png b/archive/pic_tree_fruit_img/fig.png deleted file mode 100644 index 5903f5d..0000000 Binary files a/archive/pic_tree_fruit_img/fig.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/guava.png b/archive/pic_tree_fruit_img/guava.png deleted file mode 100644 index f9fe156..0000000 Binary files a/archive/pic_tree_fruit_img/guava.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/hawthorne.png b/archive/pic_tree_fruit_img/hawthorne.png deleted file mode 100644 index 7370529..0000000 Binary files a/archive/pic_tree_fruit_img/hawthorne.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/jujube.png b/archive/pic_tree_fruit_img/jujube.png deleted file mode 100644 index 3a33b74..0000000 Binary files a/archive/pic_tree_fruit_img/jujube.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/kiwi.png b/archive/pic_tree_fruit_img/kiwi.png deleted file mode 100644 index d82216e..0000000 Binary files a/archive/pic_tree_fruit_img/kiwi.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/lychee.png b/archive/pic_tree_fruit_img/lychee.png deleted file mode 100644 index d09bf0e..0000000 Binary files a/archive/pic_tree_fruit_img/lychee.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/mandarin.png b/archive/pic_tree_fruit_img/mandarin.png deleted file mode 100644 index b8c743a..0000000 Binary files a/archive/pic_tree_fruit_img/mandarin.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/nectarine.png b/archive/pic_tree_fruit_img/nectarine.png deleted file mode 100644 index 5eecbdf..0000000 Binary files a/archive/pic_tree_fruit_img/nectarine.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/olive.png b/archive/pic_tree_fruit_img/olive.png deleted file mode 100644 index eddee5d..0000000 Binary files a/archive/pic_tree_fruit_img/olive.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/persimmon.png b/archive/pic_tree_fruit_img/persimmon.png deleted file mode 100644 index e6329a3..0000000 Binary files a/archive/pic_tree_fruit_img/persimmon.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/quandong.png b/archive/pic_tree_fruit_img/quandong.png deleted file mode 100644 index 58b30a5..0000000 Binary files a/archive/pic_tree_fruit_img/quandong.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/rambutan.png b/archive/pic_tree_fruit_img/rambutan.png deleted file mode 100644 index c17fc04..0000000 Binary files a/archive/pic_tree_fruit_img/rambutan.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/star_fruit.png b/archive/pic_tree_fruit_img/star_fruit.png deleted file mode 100644 index 1f74fb5..0000000 Binary files a/archive/pic_tree_fruit_img/star_fruit.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/tangor.png b/archive/pic_tree_fruit_img/tangor.png deleted file mode 100644 index bc66959..0000000 Binary files a/archive/pic_tree_fruit_img/tangor.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/ugli_fruit.png b/archive/pic_tree_fruit_img/ugli_fruit.png deleted file mode 100644 index 51fc7c6..0000000 Binary files a/archive/pic_tree_fruit_img/ugli_fruit.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/vanilla.png b/archive/pic_tree_fruit_img/vanilla.png deleted file mode 100644 index fe07532..0000000 Binary files a/archive/pic_tree_fruit_img/vanilla.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/vanilla_backup.png b/archive/pic_tree_fruit_img/vanilla_backup.png deleted file mode 100644 index f76dd56..0000000 Binary files a/archive/pic_tree_fruit_img/vanilla_backup.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/water_chestnut.png b/archive/pic_tree_fruit_img/water_chestnut.png deleted file mode 100644 index f7e9e91..0000000 Binary files a/archive/pic_tree_fruit_img/water_chestnut.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/ximenia.png b/archive/pic_tree_fruit_img/ximenia.png deleted file mode 100644 index f2e0786..0000000 Binary files a/archive/pic_tree_fruit_img/ximenia.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/yuzu.png b/archive/pic_tree_fruit_img/yuzu.png deleted file mode 100644 index b3d7c55..0000000 Binary files a/archive/pic_tree_fruit_img/yuzu.png and /dev/null differ diff --git a/archive/pic_tree_fruit_img/zhe.png b/archive/pic_tree_fruit_img/zhe.png deleted file mode 100644 index e8551f0..0000000 Binary files a/archive/pic_tree_fruit_img/zhe.png and /dev/null differ diff --git a/todo.md b/todo.md index c5ac5b7..a6290e8 100644 --- a/todo.md +++ b/todo.md @@ -1,6 +1,5 @@ -remove empty projects more housekeeping work: - clean up programs + clean up a_longan_tree diff --git a/unix_dict_tree.py b/unix_dict_tree.py index 95d0826..5db1a47 100644 --- a/unix_dict_tree.py +++ b/unix_dict_tree.py @@ -2,62 +2,54 @@ import sys import time import random -# hard coded in +# hard coded, default is 1000 +# fix naming of variables for the unix dict program sys.setrecursionlimit(1000000000) -print(sys.getrecursionlimit()) - corpus = [] -with open('corpus/words') as f: +with open('words') as f: corpus = f.readlines() corpus = [word.strip() for word in corpus] -fruit_list = corpus -#print(fruit_list) - -class letterLeaf: - def __init__(self,letter,wordFruit): +class word_leaf: + def __init__(self,letter,word): self.leftAlphabet = None self.rightAlphabet = None self.letter = letter - self.wordFruit = wordFruit - -COUNT = [10] + self.word = word -def print2DUtil_flat(root, space,growth_rate): +def print2DUtil_flat(root, space, interval, COUNT): if (root == None) : return space += COUNT[0] - print2DUtil_flat(root.rightAlphabet, space,growth_rate) + print2DUtil_flat(root.rightAlphabet, space, interval, COUNT) print() for i in range(COUNT[0], space): print(end = " ") - print(root.letter) + print(root.word) for i in range(COUNT[0], space): print(end = " ") - - print(root.wordFruit) - time.sleep(growth_rate) - print2DUtil_flat(root.leftAlphabet, space,growth_rate) + time.sleep(interval) + + print2DUtil_flat(root.leftAlphabet, space,interval, COUNT) -def print2D(root, growth_rate): - print("here is a tree that's laying on the ground: ") - print2DUtil_flat(root, 0, growth_rate) +def print2D(root, interval): + print2DUtil_flat(root, 0, interval, COUNT=[10]) -def grepFirstLetter(word): - firstLetter = word[0] - return firstLetter +def grep_first_letter(word): + first_letter = word[0] + return first_letter -def insertLeaf(root,wordFruit): - letter = grepFirstLetter(wordFruit) - newleaf = letterLeaf(letter,wordFruit) +def insert_leaf(root,word): + letter = grep_first_letter(word) + new_leaf = word_leaf(letter,word) x = root y = None @@ -69,36 +61,33 @@ def insertLeaf(root,wordFruit): x = x.rightAlphabet if (y == None): - y = newleaf + y = new_leaf elif (letter < y.letter): - y.leftAlphabet = newleaf + y.leftAlphabet = new_leaf else: - y.rightAlphabet = newleaf + y.rightAlphabet = new_leaf return y -import random - -root = None - -random_fruit = random.choice(fruit_list) -root = insertLeaf(root, random_fruit) -fruit_list.remove(random_fruit) -len_list = (len(fruit_list)) - -while len_list > 0: - random_fruit = random.choice(fruit_list) - insertLeaf(root,random_fruit) - fruit_list.remove(random_fruit) - len_list -= 1 - - def ask_input(): - growth_rate = int(input("Enter growth rate value for tree in seconds: ")) - return growth_rate - -growth_rate = ask_input() -print2D(root, growth_rate) + interval = int(input("Enter growth rate value for tree in seconds: ")) + return interval + +if __name__ == "__main__": + + root = None + random_word = random.choice(corpus) + print("Taking some time to process corpus...") + root = insert_leaf(root, random_word) + corpus.remove(random_word) + len_list = (len(corpus)) + while len_list > 0: + random_word = random.choice(corpus) + insert_leaf(root,random_word) + corpus.remove(random_word) + len_list -= 1 + interval = ask_input() + print2D(root, interval) diff --git a/corpus/words b/words similarity index 100% rename from corpus/words rename to words