Created
October 24, 2021 15:40
-
-
Save audhiaprilliant/8bbe5ebb32e20a3ee42032cad68d613f to your computer and use it in GitHub Desktop.
Breadth-First Search and Depth-First Search
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "id": "caroline-energy", | |
| "metadata": {}, | |
| "source": [ | |
| "# BFS and DFS Implementation for Searching File System" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "invisible-necklace", | |
| "metadata": {}, | |
| "source": [ | |
| "---" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "changed-necessity", | |
| "metadata": {}, | |
| "source": [ | |
| "## Import packages" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "id": "qualified-disease", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Provides different types of containers\n", | |
| "import collections" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "grave-consultation", | |
| "metadata": {}, | |
| "source": [ | |
| "## Breadth-First Search" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "processed-magnet", | |
| "metadata": {}, | |
| "source": [ | |
| "### Algorithm" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 6, | |
| "id": "functional-disability", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# BFS algorithm\n", | |
| "def BreadthFirstSearch(graph, node):\n", | |
| " vertices = []\n", | |
| " visited, queue = set(), collections.deque([node])\n", | |
| " visited.add(node)\n", | |
| "\n", | |
| " while queue:\n", | |
| " # Dequeue a vertex from queue\n", | |
| " vertex = queue.popleft()\n", | |
| " vertices.append(vertex)\n", | |
| " \n", | |
| " # If not visited, mark it as visited, and enqueue it\n", | |
| " for idx in range(len(graph[vertex])):\n", | |
| " neighbour = sorted(graph[vertex])[idx]\n", | |
| " if neighbour not in visited:\n", | |
| " visited.add(neighbour)\n", | |
| " queue.append(neighbour)\n", | |
| " \n", | |
| " # Return visited value\n", | |
| " return vertices" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "prompt-affairs", | |
| "metadata": {}, | |
| "source": [ | |
| "### Implementation" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 3, | |
| "id": "apparent-bunny", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Graph data\n", | |
| "graph = {\n", | |
| " 'A': set(['B', 'C']),\n", | |
| " 'B': set(['D', 'E']),\n", | |
| " 'D': set([]),\n", | |
| " 'E': set([]),\n", | |
| " 'C': set(['F', 'G', 'H']),\n", | |
| " 'G': set([]),\n", | |
| " 'H': set([]),\n", | |
| " 'F': set(['I', 'J']),\n", | |
| " 'I': set([]),\n", | |
| " 'J': set([])\n", | |
| "}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 4, | |
| "id": "rolled-wagon", | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'A': {'B', 'C'},\n", | |
| " 'B': {'D', 'E'},\n", | |
| " 'D': set(),\n", | |
| " 'E': set(),\n", | |
| " 'C': {'F', 'G', 'H'},\n", | |
| " 'G': set(),\n", | |
| " 'H': set(),\n", | |
| " 'F': {'I', 'J'},\n", | |
| " 'I': set(),\n", | |
| " 'J': set()}" | |
| ] | |
| }, | |
| "execution_count": 4, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Look the data\n", | |
| "graph" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 7, | |
| "id": "average-deposit", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Following is Breadth-First Traversal\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']" | |
| ] | |
| }, | |
| "execution_count": 7, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "print('Following is Breadth-First Traversal')\n", | |
| "BreadthFirstSearch(graph, 'A')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "coastal-procedure", | |
| "metadata": {}, | |
| "source": [ | |
| "## Depth First Search" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "arbitrary-macro", | |
| "metadata": {}, | |
| "source": [ | |
| "### Algorithm" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 118, | |
| "id": "august-gregory", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# DFS algorithm\n", | |
| "def dfs(visited, graph, node):\n", | |
| " if node not in visited:\n", | |
| " visited.add(node)\n", | |
| " # Store the node\n", | |
| " vertices.append(node)\n", | |
| " \n", | |
| " for idx in range(len(graph[node])):\n", | |
| " neighbour = sorted(graph[node])[idx]\n", | |
| " dfs(visited, graph, neighbour)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 119, | |
| "id": "latest-harassment", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "['A', 'B', 'D', 'E', 'C', 'F', 'I', 'J', 'G', 'H']" | |
| ] | |
| }, | |
| "execution_count": 119, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "vertices = []\n", | |
| "visited = set()\n", | |
| "dfs(visited, graph, 'A')\n", | |
| "vertices" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 8, | |
| "id": "essential-neighborhood", | |
| "metadata": { | |
| "code_folding": [] | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# DFS algorithm\n", | |
| "def DepthFirstSearch(visited, graph, node):\n", | |
| " if node not in visited:\n", | |
| " visited.add(node)\n", | |
| " # Store the node\n", | |
| " vertices.append(node)\n", | |
| " \n", | |
| " for idx in range(len(graph[node])):\n", | |
| " neighbour = sorted(graph[node])[idx]\n", | |
| " DepthFirstSearch(visited, graph, neighbour)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "mounted-russia", | |
| "metadata": {}, | |
| "source": [ | |
| "### Implementation" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "id": "intensive-bidding", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Graph data\n", | |
| "graph = {\n", | |
| " 'A': set(['B', 'C']),\n", | |
| " 'B': set(['D', 'E']),\n", | |
| " 'D': set([]),\n", | |
| " 'E': set([]),\n", | |
| " 'C': set(['F', 'G', 'H']),\n", | |
| " 'G': set([]),\n", | |
| " 'H': set([]),\n", | |
| " 'F': set(['I', 'J']),\n", | |
| " 'I': set([]),\n", | |
| " 'J': set([])\n", | |
| "}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 10, | |
| "id": "respiratory-blond", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'A': {'B', 'C'},\n", | |
| " 'B': {'D', 'E'},\n", | |
| " 'D': set(),\n", | |
| " 'E': set(),\n", | |
| " 'C': {'F', 'G', 'H'},\n", | |
| " 'G': set(),\n", | |
| " 'H': set(),\n", | |
| " 'F': {'I', 'J'},\n", | |
| " 'I': set(),\n", | |
| " 'J': set()}" | |
| ] | |
| }, | |
| "execution_count": 10, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Look the data\n", | |
| "graph" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "id": "clear-migration", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Following is Depth-First Traversal\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "['A', 'B', 'D', 'E', 'C', 'F', 'I', 'J', 'G', 'H']" | |
| ] | |
| }, | |
| "execution_count": 11, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "print('Following is Depth-First Traversal')\n", | |
| "vertices = []\n", | |
| "visited = set()\n", | |
| "DepthFirstSearch(visited, graph, 'A')\n", | |
| "vertices" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "suitable-calgary", | |
| "metadata": {}, | |
| "source": [ | |
| "## File system searching" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "disciplinary-individual", | |
| "metadata": {}, | |
| "source": [ | |
| "### **1 Load the data**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 12, | |
| "id": "concrete-scheduling", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "tree = {\n", | |
| " 'A': ['A1', 'A2', 'A3', 'A4', 'A5'],\n", | |
| " # Directory for A1\n", | |
| " 'A1': ['A11', 'A12', 'A13'],\n", | |
| " 'A11': ['A111', 'A112'],\n", | |
| " 'A111': ['A111_file_1'],\n", | |
| " 'A111_file_1': [],\n", | |
| " 'A112': ['A112_file_1', 'A112_file_2'],\n", | |
| " 'A112_file_1': [],\n", | |
| " 'A112_file_2': [],\n", | |
| " 'A12': ['A121', 'A122', 'A123'],\n", | |
| " 'A121': ['A121_file_1'],\n", | |
| " 'A121_file_1': [],\n", | |
| " 'A122': ['A1221'],\n", | |
| " 'A1221': ['A1221_file_1', 'A1221_file_2'],\n", | |
| " 'A1221_file_1': [],\n", | |
| " 'A1221_file_2': [],\n", | |
| " 'A123': [],\n", | |
| " 'A13': ['A13_file_1'],\n", | |
| " 'A13_file_1': [],\n", | |
| " # Directory for A2\n", | |
| " 'A2': ['A21', 'A22'],\n", | |
| " 'A21': ['A211', 'A212', 'A213'],\n", | |
| " 'A211': ['A211_file_1', 'A211_file_2'],\n", | |
| " 'A211_file_1': [],\n", | |
| " 'A211_file_2': [],\n", | |
| " 'A212': ['A2121'],\n", | |
| " 'A2121': ['A21211', 'A2121_file_1', 'A2121_file_2'],\n", | |
| " 'A2121_file_1': [],\n", | |
| " 'A2121_file_2': [],\n", | |
| " 'A21211': ['A21211_file_1', 'A21211_file_2'],\n", | |
| " 'A21211_file_1': [],\n", | |
| " 'A21211_file_2': [],\n", | |
| " 'A213': ['A2131'],\n", | |
| " 'A2131': ['A2131_file_1', 'A21311'],\n", | |
| " 'A2131_file_1': [],\n", | |
| " 'A21311': ['A21311_file_1', 'A21311_file_2'],\n", | |
| " 'A21311_file_1': [],\n", | |
| " 'A21311_file_2': [],\n", | |
| " 'A22': ['A221'],\n", | |
| " 'A221': ['A221_file_1', 'A2211', 'A2212'],\n", | |
| " 'A221_file_1': [],\n", | |
| " 'A2211': ['A2211_file_1', 'A2211_file_2'],\n", | |
| " 'A2211_file_1': [],\n", | |
| " 'A2211_file_2': [],\n", | |
| " 'A2212': ['A2212_file_1'],\n", | |
| " 'A2212_file_1': [],\n", | |
| " # Directory for A3\n", | |
| " 'A3': ['A31', 'A32'],\n", | |
| " 'A31': ['A31_file_1'],\n", | |
| " 'A31_file_1': [],\n", | |
| " 'A32': ['A321'],\n", | |
| " 'A321': ['A3211', 'A3212', 'A3213'],\n", | |
| " 'A3211': ['A3211_file_1', 'A32111'],\n", | |
| " 'A3211_file_1': [],\n", | |
| " 'A32111': ['A32111_file_1', 'A32111_file_2'],\n", | |
| " 'A32111_file_1': [],\n", | |
| " 'A32111_file_2': [],\n", | |
| " 'A3212': ['A3212_file_1', 'A32122', 'A3212_file_2'],\n", | |
| " 'A3212_file_1': [],\n", | |
| " 'A3212_file_2': [],\n", | |
| " 'A32122': ['A32122_file_1', 'A32122_file_2'],\n", | |
| " 'A32122_file_1': [],\n", | |
| " 'A32122_file_2': [],\n", | |
| " 'A3213': ['A32131'],\n", | |
| " 'A32131': ['A321311'],\n", | |
| " 'A321311': ['A321311_file_1', 'A321311_file_2'],\n", | |
| " 'A321311_file_1': [],\n", | |
| " 'A321311_file_2': [],\n", | |
| " # Directory for A4\n", | |
| " 'A4': ['A41'],\n", | |
| " 'A41': ['A41_file_1', 'A411'],\n", | |
| " 'A41_file_1': [],\n", | |
| " 'A411': ['A4111', 'A4112', 'A4113', 'A4114'],\n", | |
| " 'A4111': ['A4111_file_1', 'A41111'],\n", | |
| " 'A4111_file_1': [],\n", | |
| " 'A41111': ['A41111_file_1', 'A41111_file_2', 'A41111_file_3'],\n", | |
| " 'A41111_file_1': [],\n", | |
| " 'A41111_file_2': [],\n", | |
| " 'A41111_file_3': [],\n", | |
| " 'A4112': ['A41121'],\n", | |
| " 'A41121': ['A41121_file_1', 'A41121_file_2'],\n", | |
| " 'A41121_file_1': [],\n", | |
| " 'A41121_file_2': [],\n", | |
| " 'A4113': ['A4113_file_1', 'A41131', 'A4113_file_2'],\n", | |
| " 'A4113_file_1': [],\n", | |
| " 'A4113_file_2': [],\n", | |
| " 'A41131': ['A41131_file_1'],\n", | |
| " 'A41131_file_1': [],\n", | |
| " 'A4114': ['A41141', 'A4114_file_1'],\n", | |
| " 'A4114_file_1': [],\n", | |
| " 'A41141': ['A41141_file_1', 'A411411'],\n", | |
| " 'A41141_file_1': [],\n", | |
| " 'A411411': ['A4114111', 'A411411_file_1'],\n", | |
| " 'A411411_file_1': [],\n", | |
| " 'A4114111': ['A4114111_file_1'],\n", | |
| " 'A4114111_file_1': [],\n", | |
| " # Directory for A5\n", | |
| " 'A5': ['A51', 'A52', 'A53', 'A54'],\n", | |
| " 'A51': ['A511', 'A512', 'A513'],\n", | |
| " 'A511': ['A511_file_1', 'A511_file_2'],\n", | |
| " 'A511_file_1': [],\n", | |
| " 'A511_file_2': [],\n", | |
| " 'A512': ['A512_file_1', 'A5121', 'A512_file_2'],\n", | |
| " 'A512_file_1': [],\n", | |
| " 'A512_file_2': [],\n", | |
| " 'A5121': ['A5121_file_1', 'A5121_file_2'],\n", | |
| " 'A5121_file_1': [],\n", | |
| " 'A5121_file_2': [],\n", | |
| " 'A513': [],\n", | |
| " 'A52': ['A521'],\n", | |
| " 'A521': ['A521_file_1', 'A5211'],\n", | |
| " 'A521_file_1': [],\n", | |
| " 'A5211': ['A5211_file_1', 'A5211_file_2', 'A5211_file_3'],\n", | |
| " 'A5211_file_1': [],\n", | |
| " 'A5211_file_2': [],\n", | |
| " 'A5211_file_3': [],\n", | |
| " 'A53': ['A53_file_1', 'A53_file_2', 'A53_file_3'],\n", | |
| " 'A53_file_1': [],\n", | |
| " 'A53_file_2': [],\n", | |
| " 'A53_file_3': [],\n", | |
| " 'A54': []\n", | |
| "}" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 13, | |
| "id": "directed-nevada", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'A': ['A1', 'A2', 'A3', 'A4', 'A5'],\n", | |
| " 'A1': ['A11', 'A12', 'A13'],\n", | |
| " 'A11': ['A111', 'A112'],\n", | |
| " 'A111': ['A111_file_1'],\n", | |
| " 'A111_file_1': [],\n", | |
| " 'A112': ['A112_file_1', 'A112_file_2'],\n", | |
| " 'A112_file_1': [],\n", | |
| " 'A112_file_2': [],\n", | |
| " 'A12': ['A121', 'A122', 'A123'],\n", | |
| " 'A121': ['A121_file_1'],\n", | |
| " 'A121_file_1': [],\n", | |
| " 'A122': ['A1221'],\n", | |
| " 'A1221': ['A1221_file_1', 'A1221_file_2'],\n", | |
| " 'A1221_file_1': [],\n", | |
| " 'A1221_file_2': [],\n", | |
| " 'A123': [],\n", | |
| " 'A13': ['A13_file_1'],\n", | |
| " 'A13_file_1': [],\n", | |
| " 'A2': ['A21', 'A22'],\n", | |
| " 'A21': ['A211', 'A212', 'A213'],\n", | |
| " 'A211': ['A211_file_1', 'A211_file_2'],\n", | |
| " 'A211_file_1': [],\n", | |
| " 'A211_file_2': [],\n", | |
| " 'A212': ['A2121'],\n", | |
| " 'A2121': ['A21211', 'A2121_file_1', 'A2121_file_2'],\n", | |
| " 'A2121_file_1': [],\n", | |
| " 'A2121_file_2': [],\n", | |
| " 'A21211': ['A21211_file_1', 'A21211_file_2'],\n", | |
| " 'A21211_file_1': [],\n", | |
| " 'A21211_file_2': [],\n", | |
| " 'A213': ['A2131'],\n", | |
| " 'A2131': ['A2131_file_1', 'A21311'],\n", | |
| " 'A2131_file_1': [],\n", | |
| " 'A21311': ['A21311_file_1', 'A21311_file_2'],\n", | |
| " 'A21311_file_1': [],\n", | |
| " 'A21311_file_2': [],\n", | |
| " 'A22': ['A221'],\n", | |
| " 'A221': ['A221_file_1', 'A2211', 'A2212'],\n", | |
| " 'A221_file_1': [],\n", | |
| " 'A2211': ['A2211_file_1', 'A2211_file_2'],\n", | |
| " 'A2211_file_1': [],\n", | |
| " 'A2211_file_2': [],\n", | |
| " 'A2212': ['A2212_file_1'],\n", | |
| " 'A2212_file_1': [],\n", | |
| " 'A3': ['A31', 'A32'],\n", | |
| " 'A31': ['A31_file_1'],\n", | |
| " 'A31_file_1': [],\n", | |
| " 'A32': ['A321'],\n", | |
| " 'A321': ['A3211', 'A3212', 'A3213'],\n", | |
| " 'A3211': ['A3211_file_1', 'A32111'],\n", | |
| " 'A3211_file_1': [],\n", | |
| " 'A32111': ['A32111_file_1', 'A32111_file_2'],\n", | |
| " 'A32111_file_1': [],\n", | |
| " 'A32111_file_2': [],\n", | |
| " 'A3212': ['A3212_file_1', 'A32122', 'A3212_file_2'],\n", | |
| " 'A3212_file_1': [],\n", | |
| " 'A3212_file_2': [],\n", | |
| " 'A32122': ['A32122_file_1', 'A32122_file_2'],\n", | |
| " 'A32122_file_1': [],\n", | |
| " 'A32122_file_2': [],\n", | |
| " 'A3213': ['A32131'],\n", | |
| " 'A32131': ['A321311'],\n", | |
| " 'A321311': ['A321311_file_1', 'A321311_file_2'],\n", | |
| " 'A321311_file_1': [],\n", | |
| " 'A321311_file_2': [],\n", | |
| " 'A4': ['A41'],\n", | |
| " 'A41': ['A41_file_1', 'A411'],\n", | |
| " 'A41_file_1': [],\n", | |
| " 'A411': ['A4111', 'A4112', 'A4113', 'A4114'],\n", | |
| " 'A4111': ['A4111_file_1', 'A41111'],\n", | |
| " 'A4111_file_1': [],\n", | |
| " 'A41111': ['A41111_file_1', 'A41111_file_2', 'A41111_file_3'],\n", | |
| " 'A41111_file_1': [],\n", | |
| " 'A41111_file_2': [],\n", | |
| " 'A41111_file_3': [],\n", | |
| " 'A4112': ['A41121'],\n", | |
| " 'A41121': ['A41121_file_1', 'A41121_file_2'],\n", | |
| " 'A41121_file_1': [],\n", | |
| " 'A41121_file_2': [],\n", | |
| " 'A4113': ['A4113_file_1', 'A41131', 'A4113_file_2'],\n", | |
| " 'A4113_file_1': [],\n", | |
| " 'A4113_file_2': [],\n", | |
| " 'A41131': ['A41131_file_1'],\n", | |
| " 'A41131_file_1': [],\n", | |
| " 'A4114': ['A41141', 'A4114_file_1'],\n", | |
| " 'A4114_file_1': [],\n", | |
| " 'A41141': ['A41141_file_1', 'A411411'],\n", | |
| " 'A41141_file_1': [],\n", | |
| " 'A411411': ['A4114111', 'A411411_file_1'],\n", | |
| " 'A411411_file_1': [],\n", | |
| " 'A4114111': ['A4114111_file_1'],\n", | |
| " 'A4114111_file_1': [],\n", | |
| " 'A5': ['A51', 'A52', 'A53', 'A54'],\n", | |
| " 'A51': ['A511', 'A512', 'A513'],\n", | |
| " 'A511': ['A511_file_1', 'A511_file_2'],\n", | |
| " 'A511_file_1': [],\n", | |
| " 'A511_file_2': [],\n", | |
| " 'A512': ['A512_file_1', 'A5121', 'A512_file_2'],\n", | |
| " 'A512_file_1': [],\n", | |
| " 'A512_file_2': [],\n", | |
| " 'A5121': ['A5121_file_1', 'A5121_file_2'],\n", | |
| " 'A5121_file_1': [],\n", | |
| " 'A5121_file_2': [],\n", | |
| " 'A513': [],\n", | |
| " 'A52': ['A521'],\n", | |
| " 'A521': ['A521_file_1', 'A5211'],\n", | |
| " 'A521_file_1': [],\n", | |
| " 'A5211': ['A5211_file_1', 'A5211_file_2', 'A5211_file_3'],\n", | |
| " 'A5211_file_1': [],\n", | |
| " 'A5211_file_2': [],\n", | |
| " 'A5211_file_3': [],\n", | |
| " 'A53': ['A53_file_1', 'A53_file_2', 'A53_file_3'],\n", | |
| " 'A53_file_1': [],\n", | |
| " 'A53_file_2': [],\n", | |
| " 'A53_file_3': [],\n", | |
| " 'A54': []}" | |
| ] | |
| }, | |
| "execution_count": 13, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# The directory data\n", | |
| "tree" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "classical-education", | |
| "metadata": {}, | |
| "source": [ | |
| "### **2 Convert into sets**" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "id": "finished-colors", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Convert the previous tree data structure to the new one\n", | |
| "tree_set = {}\n", | |
| "for key in tree.keys():\n", | |
| " tree_set.update({key: set(tree[key])})" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "id": "industrial-buying", | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'A': {'A1', 'A2', 'A3', 'A4', 'A5'},\n", | |
| " 'A1': {'A11', 'A12', 'A13'},\n", | |
| " 'A11': {'A111', 'A112'},\n", | |
| " 'A111': {'A111_file_1'},\n", | |
| " 'A111_file_1': set(),\n", | |
| " 'A112': {'A112_file_1', 'A112_file_2'},\n", | |
| " 'A112_file_1': set(),\n", | |
| " 'A112_file_2': set(),\n", | |
| " 'A12': {'A121', 'A122', 'A123'},\n", | |
| " 'A121': {'A121_file_1'},\n", | |
| " 'A121_file_1': set(),\n", | |
| " 'A122': {'A1221'},\n", | |
| " 'A1221': {'A1221_file_1', 'A1221_file_2'},\n", | |
| " 'A1221_file_1': set(),\n", | |
| " 'A1221_file_2': set(),\n", | |
| " 'A123': set(),\n", | |
| " 'A13': {'A13_file_1'},\n", | |
| " 'A13_file_1': set(),\n", | |
| " 'A2': {'A21', 'A22'},\n", | |
| " 'A21': {'A211', 'A212', 'A213'},\n", | |
| " 'A211': {'A211_file_1', 'A211_file_2'},\n", | |
| " 'A211_file_1': set(),\n", | |
| " 'A211_file_2': set(),\n", | |
| " 'A212': {'A2121'},\n", | |
| " 'A2121': {'A21211', 'A2121_file_1', 'A2121_file_2'},\n", | |
| " 'A2121_file_1': set(),\n", | |
| " 'A2121_file_2': set(),\n", | |
| " 'A21211': {'A21211_file_1', 'A21211_file_2'},\n", | |
| " 'A21211_file_1': set(),\n", | |
| " 'A21211_file_2': set(),\n", | |
| " 'A213': {'A2131'},\n", | |
| " 'A2131': {'A21311', 'A2131_file_1'},\n", | |
| " 'A2131_file_1': set(),\n", | |
| " 'A21311': {'A21311_file_1', 'A21311_file_2'},\n", | |
| " 'A21311_file_1': set(),\n", | |
| " 'A21311_file_2': set(),\n", | |
| " 'A22': {'A221'},\n", | |
| " 'A221': {'A2211', 'A2212', 'A221_file_1'},\n", | |
| " 'A221_file_1': set(),\n", | |
| " 'A2211': {'A2211_file_1', 'A2211_file_2'},\n", | |
| " 'A2211_file_1': set(),\n", | |
| " 'A2211_file_2': set(),\n", | |
| " 'A2212': {'A2212_file_1'},\n", | |
| " 'A2212_file_1': set(),\n", | |
| " 'A3': {'A31', 'A32'},\n", | |
| " 'A31': {'A31_file_1'},\n", | |
| " 'A31_file_1': set(),\n", | |
| " 'A32': {'A321'},\n", | |
| " 'A321': {'A3211', 'A3212', 'A3213'},\n", | |
| " 'A3211': {'A32111', 'A3211_file_1'},\n", | |
| " 'A3211_file_1': set(),\n", | |
| " 'A32111': {'A32111_file_1', 'A32111_file_2'},\n", | |
| " 'A32111_file_1': set(),\n", | |
| " 'A32111_file_2': set(),\n", | |
| " 'A3212': {'A32122', 'A3212_file_1', 'A3212_file_2'},\n", | |
| " 'A3212_file_1': set(),\n", | |
| " 'A3212_file_2': set(),\n", | |
| " 'A32122': {'A32122_file_1', 'A32122_file_2'},\n", | |
| " 'A32122_file_1': set(),\n", | |
| " 'A32122_file_2': set(),\n", | |
| " 'A3213': {'A32131'},\n", | |
| " 'A32131': {'A321311'},\n", | |
| " 'A321311': {'A321311_file_1', 'A321311_file_2'},\n", | |
| " 'A321311_file_1': set(),\n", | |
| " 'A321311_file_2': set(),\n", | |
| " 'A4': {'A41'},\n", | |
| " 'A41': {'A411', 'A41_file_1'},\n", | |
| " 'A41_file_1': set(),\n", | |
| " 'A411': {'A4111', 'A4112', 'A4113', 'A4114'},\n", | |
| " 'A4111': {'A41111', 'A4111_file_1'},\n", | |
| " 'A4111_file_1': set(),\n", | |
| " 'A41111': {'A41111_file_1', 'A41111_file_2', 'A41111_file_3'},\n", | |
| " 'A41111_file_1': set(),\n", | |
| " 'A41111_file_2': set(),\n", | |
| " 'A41111_file_3': set(),\n", | |
| " 'A4112': {'A41121'},\n", | |
| " 'A41121': {'A41121_file_1', 'A41121_file_2'},\n", | |
| " 'A41121_file_1': set(),\n", | |
| " 'A41121_file_2': set(),\n", | |
| " 'A4113': {'A41131', 'A4113_file_1', 'A4113_file_2'},\n", | |
| " 'A4113_file_1': set(),\n", | |
| " 'A4113_file_2': set(),\n", | |
| " 'A41131': {'A41131_file_1'},\n", | |
| " 'A41131_file_1': set(),\n", | |
| " 'A4114': {'A41141', 'A4114_file_1'},\n", | |
| " 'A4114_file_1': set(),\n", | |
| " 'A41141': {'A411411', 'A41141_file_1'},\n", | |
| " 'A41141_file_1': set(),\n", | |
| " 'A411411': {'A4114111', 'A411411_file_1'},\n", | |
| " 'A411411_file_1': set(),\n", | |
| " 'A4114111': {'A4114111_file_1'},\n", | |
| " 'A4114111_file_1': set(),\n", | |
| " 'A5': {'A51', 'A52', 'A53', 'A54'},\n", | |
| " 'A51': {'A511', 'A512', 'A513'},\n", | |
| " 'A511': {'A511_file_1', 'A511_file_2'},\n", | |
| " 'A511_file_1': set(),\n", | |
| " 'A511_file_2': set(),\n", | |
| " 'A512': {'A5121', 'A512_file_1', 'A512_file_2'},\n", | |
| " 'A512_file_1': set(),\n", | |
| " 'A512_file_2': set(),\n", | |
| " 'A5121': {'A5121_file_1', 'A5121_file_2'},\n", | |
| " 'A5121_file_1': set(),\n", | |
| " 'A5121_file_2': set(),\n", | |
| " 'A513': set(),\n", | |
| " 'A52': {'A521'},\n", | |
| " 'A521': {'A5211', 'A521_file_1'},\n", | |
| " 'A521_file_1': set(),\n", | |
| " 'A5211': {'A5211_file_1', 'A5211_file_2', 'A5211_file_3'},\n", | |
| " 'A5211_file_1': set(),\n", | |
| " 'A5211_file_2': set(),\n", | |
| " 'A5211_file_3': set(),\n", | |
| " 'A53': {'A53_file_1', 'A53_file_2', 'A53_file_3'},\n", | |
| " 'A53_file_1': set(),\n", | |
| " 'A53_file_2': set(),\n", | |
| " 'A53_file_3': set(),\n", | |
| " 'A54': set()}" | |
| ] | |
| }, | |
| "execution_count": 15, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# The directory data\n", | |
| "tree_set" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "dominant-guidance", | |
| "metadata": {}, | |
| "source": [ | |
| "### 3 Convert into tree format (optional)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "id": "cardiac-proposal", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Create a nodelist\n", | |
| "nodelists = dict((node, [node, []]) for node in tree.keys())" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "id": "posted-rendering", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'A': ['A', []],\n", | |
| " 'A1': ['A1', []],\n", | |
| " 'A11': ['A11', []],\n", | |
| " 'A111': ['A111', []],\n", | |
| " 'A111_file_1': ['A111_file_1', []],\n", | |
| " 'A112': ['A112', []],\n", | |
| " 'A112_file_1': ['A112_file_1', []],\n", | |
| " 'A112_file_2': ['A112_file_2', []],\n", | |
| " 'A12': ['A12', []],\n", | |
| " 'A121': ['A121', []],\n", | |
| " 'A121_file_1': ['A121_file_1', []],\n", | |
| " 'A122': ['A122', []],\n", | |
| " 'A1221': ['A1221', []],\n", | |
| " 'A1221_file_1': ['A1221_file_1', []],\n", | |
| " 'A1221_file_2': ['A1221_file_2', []],\n", | |
| " 'A123': ['A123', []],\n", | |
| " 'A13': ['A13', []],\n", | |
| " 'A13_file_1': ['A13_file_1', []],\n", | |
| " 'A2': ['A2', []],\n", | |
| " 'A21': ['A21', []],\n", | |
| " 'A211': ['A211', []],\n", | |
| " 'A211_file_1': ['A211_file_1', []],\n", | |
| " 'A211_file_2': ['A211_file_2', []],\n", | |
| " 'A212': ['A212', []],\n", | |
| " 'A2121': ['A2121', []],\n", | |
| " 'A2121_file_1': ['A2121_file_1', []],\n", | |
| " 'A2121_file_2': ['A2121_file_2', []],\n", | |
| " 'A21211': ['A21211', []],\n", | |
| " 'A21211_file_1': ['A21211_file_1', []],\n", | |
| " 'A21211_file_2': ['A21211_file_2', []],\n", | |
| " 'A213': ['A213', []],\n", | |
| " 'A2131': ['A2131', []],\n", | |
| " 'A2131_file_1': ['A2131_file_1', []],\n", | |
| " 'A21311': ['A21311', []],\n", | |
| " 'A21311_file_1': ['A21311_file_1', []],\n", | |
| " 'A21311_file_2': ['A21311_file_2', []],\n", | |
| " 'A22': ['A22', []],\n", | |
| " 'A221': ['A221', []],\n", | |
| " 'A221_file_1': ['A221_file_1', []],\n", | |
| " 'A2211': ['A2211', []],\n", | |
| " 'A2211_file_1': ['A2211_file_1', []],\n", | |
| " 'A2211_file_2': ['A2211_file_2', []],\n", | |
| " 'A2212': ['A2212', []],\n", | |
| " 'A2212_file_1': ['A2212_file_1', []],\n", | |
| " 'A3': ['A3', []],\n", | |
| " 'A31': ['A31', []],\n", | |
| " 'A31_file_1': ['A31_file_1', []],\n", | |
| " 'A32': ['A32', []],\n", | |
| " 'A321': ['A321', []],\n", | |
| " 'A3211': ['A3211', []],\n", | |
| " 'A3211_file_1': ['A3211_file_1', []],\n", | |
| " 'A32111': ['A32111', []],\n", | |
| " 'A32111_file_1': ['A32111_file_1', []],\n", | |
| " 'A32111_file_2': ['A32111_file_2', []],\n", | |
| " 'A3212': ['A3212', []],\n", | |
| " 'A3212_file_1': ['A3212_file_1', []],\n", | |
| " 'A3212_file_2': ['A3212_file_2', []],\n", | |
| " 'A32122': ['A32122', []],\n", | |
| " 'A32122_file_1': ['A32122_file_1', []],\n", | |
| " 'A32122_file_2': ['A32122_file_2', []],\n", | |
| " 'A3213': ['A3213', []],\n", | |
| " 'A32131': ['A32131', []],\n", | |
| " 'A321311': ['A321311', []],\n", | |
| " 'A321311_file_1': ['A321311_file_1', []],\n", | |
| " 'A321311_file_2': ['A321311_file_2', []],\n", | |
| " 'A4': ['A4', []],\n", | |
| " 'A41': ['A41', []],\n", | |
| " 'A41_file_1': ['A41_file_1', []],\n", | |
| " 'A411': ['A411', []],\n", | |
| " 'A4111': ['A4111', []],\n", | |
| " 'A4111_file_1': ['A4111_file_1', []],\n", | |
| " 'A41111': ['A41111', []],\n", | |
| " 'A41111_file_1': ['A41111_file_1', []],\n", | |
| " 'A41111_file_2': ['A41111_file_2', []],\n", | |
| " 'A41111_file_3': ['A41111_file_3', []],\n", | |
| " 'A4112': ['A4112', []],\n", | |
| " 'A41121': ['A41121', []],\n", | |
| " 'A41121_file_1': ['A41121_file_1', []],\n", | |
| " 'A41121_file_2': ['A41121_file_2', []],\n", | |
| " 'A4113': ['A4113', []],\n", | |
| " 'A4113_file_1': ['A4113_file_1', []],\n", | |
| " 'A4113_file_2': ['A4113_file_2', []],\n", | |
| " 'A41131': ['A41131', []],\n", | |
| " 'A41131_file_1': ['A41131_file_1', []],\n", | |
| " 'A4114': ['A4114', []],\n", | |
| " 'A4114_file_1': ['A4114_file_1', []],\n", | |
| " 'A41141': ['A41141', []],\n", | |
| " 'A41141_file_1': ['A41141_file_1', []],\n", | |
| " 'A411411': ['A411411', []],\n", | |
| " 'A411411_file_1': ['A411411_file_1', []],\n", | |
| " 'A4114111': ['A4114111', []],\n", | |
| " 'A4114111_file_1': ['A4114111_file_1', []],\n", | |
| " 'A5': ['A5', []],\n", | |
| " 'A51': ['A51', []],\n", | |
| " 'A511': ['A511', []],\n", | |
| " 'A511_file_1': ['A511_file_1', []],\n", | |
| " 'A511_file_2': ['A511_file_2', []],\n", | |
| " 'A512': ['A512', []],\n", | |
| " 'A512_file_1': ['A512_file_1', []],\n", | |
| " 'A512_file_2': ['A512_file_2', []],\n", | |
| " 'A5121': ['A5121', []],\n", | |
| " 'A5121_file_1': ['A5121_file_1', []],\n", | |
| " 'A5121_file_2': ['A5121_file_2', []],\n", | |
| " 'A513': ['A513', []],\n", | |
| " 'A52': ['A52', []],\n", | |
| " 'A521': ['A521', []],\n", | |
| " 'A521_file_1': ['A521_file_1', []],\n", | |
| " 'A5211': ['A5211', []],\n", | |
| " 'A5211_file_1': ['A5211_file_1', []],\n", | |
| " 'A5211_file_2': ['A5211_file_2', []],\n", | |
| " 'A5211_file_3': ['A5211_file_3', []],\n", | |
| " 'A53': ['A53', []],\n", | |
| " 'A53_file_1': ['A53_file_1', []],\n", | |
| " 'A53_file_2': ['A53_file_2', []],\n", | |
| " 'A53_file_3': ['A53_file_3', []],\n", | |
| " 'A54': ['A54', []]}" | |
| ] | |
| }, | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Nodelist data\n", | |
| "nodelists" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "id": "liable-diversity", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# Convert childs into nodelist data\n", | |
| "for node, children in tree.items():\n", | |
| " for child in children:\n", | |
| " nodelists[node][1].extend(nodelists.setdefault(child, [child]))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 19, | |
| "id": "south-registrar", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "{'A': ['A',\n", | |
| " ['A1',\n", | |
| " ['A11',\n", | |
| " ['A111',\n", | |
| " ['A111_file_1', []],\n", | |
| " 'A112',\n", | |
| " ['A112_file_1', [], 'A112_file_2', []]],\n", | |
| " 'A12',\n", | |
| " ['A121',\n", | |
| " ['A121_file_1', []],\n", | |
| " 'A122',\n", | |
| " ['A1221', ['A1221_file_1', [], 'A1221_file_2', []]],\n", | |
| " 'A123',\n", | |
| " []],\n", | |
| " 'A13',\n", | |
| " ['A13_file_1', []]],\n", | |
| " 'A2',\n", | |
| " ['A21',\n", | |
| " ['A211',\n", | |
| " ['A211_file_1', [], 'A211_file_2', []],\n", | |
| " 'A212',\n", | |
| " ['A2121',\n", | |
| " ['A21211',\n", | |
| " ['A21211_file_1', [], 'A21211_file_2', []],\n", | |
| " 'A2121_file_1',\n", | |
| " [],\n", | |
| " 'A2121_file_2',\n", | |
| " []]],\n", | |
| " 'A213',\n", | |
| " ['A2131',\n", | |
| " ['A2131_file_1',\n", | |
| " [],\n", | |
| " 'A21311',\n", | |
| " ['A21311_file_1', [], 'A21311_file_2', []]]]],\n", | |
| " 'A22',\n", | |
| " ['A221',\n", | |
| " ['A221_file_1',\n", | |
| " [],\n", | |
| " 'A2211',\n", | |
| " ['A2211_file_1', [], 'A2211_file_2', []],\n", | |
| " 'A2212',\n", | |
| " ['A2212_file_1', []]]]],\n", | |
| " 'A3',\n", | |
| " ['A31',\n", | |
| " ['A31_file_1', []],\n", | |
| " 'A32',\n", | |
| " ['A321',\n", | |
| " ['A3211',\n", | |
| " ['A3211_file_1',\n", | |
| " [],\n", | |
| " 'A32111',\n", | |
| " ['A32111_file_1', [], 'A32111_file_2', []]],\n", | |
| " 'A3212',\n", | |
| " ['A3212_file_1',\n", | |
| " [],\n", | |
| " 'A32122',\n", | |
| " ['A32122_file_1', [], 'A32122_file_2', []],\n", | |
| " 'A3212_file_2',\n", | |
| " []],\n", | |
| " 'A3213',\n", | |
| " ['A32131', ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]]]]]],\n", | |
| " 'A4',\n", | |
| " ['A41',\n", | |
| " ['A41_file_1',\n", | |
| " [],\n", | |
| " 'A411',\n", | |
| " ['A4111',\n", | |
| " ['A4111_file_1',\n", | |
| " [],\n", | |
| " 'A41111',\n", | |
| " ['A41111_file_1', [], 'A41111_file_2', [], 'A41111_file_3', []]],\n", | |
| " 'A4112',\n", | |
| " ['A41121', ['A41121_file_1', [], 'A41121_file_2', []]],\n", | |
| " 'A4113',\n", | |
| " ['A4113_file_1',\n", | |
| " [],\n", | |
| " 'A41131',\n", | |
| " ['A41131_file_1', []],\n", | |
| " 'A4113_file_2',\n", | |
| " []],\n", | |
| " 'A4114',\n", | |
| " ['A41141',\n", | |
| " ['A41141_file_1',\n", | |
| " [],\n", | |
| " 'A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]],\n", | |
| " 'A4114_file_1',\n", | |
| " []]]]],\n", | |
| " 'A5',\n", | |
| " ['A51',\n", | |
| " ['A511',\n", | |
| " ['A511_file_1', [], 'A511_file_2', []],\n", | |
| " 'A512',\n", | |
| " ['A512_file_1',\n", | |
| " [],\n", | |
| " 'A5121',\n", | |
| " ['A5121_file_1', [], 'A5121_file_2', []],\n", | |
| " 'A512_file_2',\n", | |
| " []],\n", | |
| " 'A513',\n", | |
| " []],\n", | |
| " 'A52',\n", | |
| " ['A521',\n", | |
| " ['A521_file_1',\n", | |
| " [],\n", | |
| " 'A5211',\n", | |
| " ['A5211_file_1', [], 'A5211_file_2', [], 'A5211_file_3', []]]],\n", | |
| " 'A53',\n", | |
| " ['A53_file_1', [], 'A53_file_2', [], 'A53_file_3', []],\n", | |
| " 'A54',\n", | |
| " []]]],\n", | |
| " 'A1': ['A1',\n", | |
| " ['A11',\n", | |
| " ['A111',\n", | |
| " ['A111_file_1', []],\n", | |
| " 'A112',\n", | |
| " ['A112_file_1', [], 'A112_file_2', []]],\n", | |
| " 'A12',\n", | |
| " ['A121',\n", | |
| " ['A121_file_1', []],\n", | |
| " 'A122',\n", | |
| " ['A1221', ['A1221_file_1', [], 'A1221_file_2', []]],\n", | |
| " 'A123',\n", | |
| " []],\n", | |
| " 'A13',\n", | |
| " ['A13_file_1', []]]],\n", | |
| " 'A11': ['A11',\n", | |
| " ['A111',\n", | |
| " ['A111_file_1', []],\n", | |
| " 'A112',\n", | |
| " ['A112_file_1', [], 'A112_file_2', []]]],\n", | |
| " 'A111': ['A111', ['A111_file_1', []]],\n", | |
| " 'A111_file_1': ['A111_file_1', []],\n", | |
| " 'A112': ['A112', ['A112_file_1', [], 'A112_file_2', []]],\n", | |
| " 'A112_file_1': ['A112_file_1', []],\n", | |
| " 'A112_file_2': ['A112_file_2', []],\n", | |
| " 'A12': ['A12',\n", | |
| " ['A121',\n", | |
| " ['A121_file_1', []],\n", | |
| " 'A122',\n", | |
| " ['A1221', ['A1221_file_1', [], 'A1221_file_2', []]],\n", | |
| " 'A123',\n", | |
| " []]],\n", | |
| " 'A121': ['A121', ['A121_file_1', []]],\n", | |
| " 'A121_file_1': ['A121_file_1', []],\n", | |
| " 'A122': ['A122', ['A1221', ['A1221_file_1', [], 'A1221_file_2', []]]],\n", | |
| " 'A1221': ['A1221', ['A1221_file_1', [], 'A1221_file_2', []]],\n", | |
| " 'A1221_file_1': ['A1221_file_1', []],\n", | |
| " 'A1221_file_2': ['A1221_file_2', []],\n", | |
| " 'A123': ['A123', []],\n", | |
| " 'A13': ['A13', ['A13_file_1', []]],\n", | |
| " 'A13_file_1': ['A13_file_1', []],\n", | |
| " 'A2': ['A2',\n", | |
| " ['A21',\n", | |
| " ['A211',\n", | |
| " ['A211_file_1', [], 'A211_file_2', []],\n", | |
| " 'A212',\n", | |
| " ['A2121',\n", | |
| " ['A21211',\n", | |
| " ['A21211_file_1', [], 'A21211_file_2', []],\n", | |
| " 'A2121_file_1',\n", | |
| " [],\n", | |
| " 'A2121_file_2',\n", | |
| " []]],\n", | |
| " 'A213',\n", | |
| " ['A2131',\n", | |
| " ['A2131_file_1',\n", | |
| " [],\n", | |
| " 'A21311',\n", | |
| " ['A21311_file_1', [], 'A21311_file_2', []]]]],\n", | |
| " 'A22',\n", | |
| " ['A221',\n", | |
| " ['A221_file_1',\n", | |
| " [],\n", | |
| " 'A2211',\n", | |
| " ['A2211_file_1', [], 'A2211_file_2', []],\n", | |
| " 'A2212',\n", | |
| " ['A2212_file_1', []]]]]],\n", | |
| " 'A21': ['A21',\n", | |
| " ['A211',\n", | |
| " ['A211_file_1', [], 'A211_file_2', []],\n", | |
| " 'A212',\n", | |
| " ['A2121',\n", | |
| " ['A21211',\n", | |
| " ['A21211_file_1', [], 'A21211_file_2', []],\n", | |
| " 'A2121_file_1',\n", | |
| " [],\n", | |
| " 'A2121_file_2',\n", | |
| " []]],\n", | |
| " 'A213',\n", | |
| " ['A2131',\n", | |
| " ['A2131_file_1',\n", | |
| " [],\n", | |
| " 'A21311',\n", | |
| " ['A21311_file_1', [], 'A21311_file_2', []]]]]],\n", | |
| " 'A211': ['A211', ['A211_file_1', [], 'A211_file_2', []]],\n", | |
| " 'A211_file_1': ['A211_file_1', []],\n", | |
| " 'A211_file_2': ['A211_file_2', []],\n", | |
| " 'A212': ['A212',\n", | |
| " ['A2121',\n", | |
| " ['A21211',\n", | |
| " ['A21211_file_1', [], 'A21211_file_2', []],\n", | |
| " 'A2121_file_1',\n", | |
| " [],\n", | |
| " 'A2121_file_2',\n", | |
| " []]]],\n", | |
| " 'A2121': ['A2121',\n", | |
| " ['A21211',\n", | |
| " ['A21211_file_1', [], 'A21211_file_2', []],\n", | |
| " 'A2121_file_1',\n", | |
| " [],\n", | |
| " 'A2121_file_2',\n", | |
| " []]],\n", | |
| " 'A2121_file_1': ['A2121_file_1', []],\n", | |
| " 'A2121_file_2': ['A2121_file_2', []],\n", | |
| " 'A21211': ['A21211', ['A21211_file_1', [], 'A21211_file_2', []]],\n", | |
| " 'A21211_file_1': ['A21211_file_1', []],\n", | |
| " 'A21211_file_2': ['A21211_file_2', []],\n", | |
| " 'A213': ['A213',\n", | |
| " ['A2131',\n", | |
| " ['A2131_file_1',\n", | |
| " [],\n", | |
| " 'A21311',\n", | |
| " ['A21311_file_1', [], 'A21311_file_2', []]]]],\n", | |
| " 'A2131': ['A2131',\n", | |
| " ['A2131_file_1', [], 'A21311', ['A21311_file_1', [], 'A21311_file_2', []]]],\n", | |
| " 'A2131_file_1': ['A2131_file_1', []],\n", | |
| " 'A21311': ['A21311', ['A21311_file_1', [], 'A21311_file_2', []]],\n", | |
| " 'A21311_file_1': ['A21311_file_1', []],\n", | |
| " 'A21311_file_2': ['A21311_file_2', []],\n", | |
| " 'A22': ['A22',\n", | |
| " ['A221',\n", | |
| " ['A221_file_1',\n", | |
| " [],\n", | |
| " 'A2211',\n", | |
| " ['A2211_file_1', [], 'A2211_file_2', []],\n", | |
| " 'A2212',\n", | |
| " ['A2212_file_1', []]]]],\n", | |
| " 'A221': ['A221',\n", | |
| " ['A221_file_1',\n", | |
| " [],\n", | |
| " 'A2211',\n", | |
| " ['A2211_file_1', [], 'A2211_file_2', []],\n", | |
| " 'A2212',\n", | |
| " ['A2212_file_1', []]]],\n", | |
| " 'A221_file_1': ['A221_file_1', []],\n", | |
| " 'A2211': ['A2211', ['A2211_file_1', [], 'A2211_file_2', []]],\n", | |
| " 'A2211_file_1': ['A2211_file_1', []],\n", | |
| " 'A2211_file_2': ['A2211_file_2', []],\n", | |
| " 'A2212': ['A2212', ['A2212_file_1', []]],\n", | |
| " 'A2212_file_1': ['A2212_file_1', []],\n", | |
| " 'A3': ['A3',\n", | |
| " ['A31',\n", | |
| " ['A31_file_1', []],\n", | |
| " 'A32',\n", | |
| " ['A321',\n", | |
| " ['A3211',\n", | |
| " ['A3211_file_1',\n", | |
| " [],\n", | |
| " 'A32111',\n", | |
| " ['A32111_file_1', [], 'A32111_file_2', []]],\n", | |
| " 'A3212',\n", | |
| " ['A3212_file_1',\n", | |
| " [],\n", | |
| " 'A32122',\n", | |
| " ['A32122_file_1', [], 'A32122_file_2', []],\n", | |
| " 'A3212_file_2',\n", | |
| " []],\n", | |
| " 'A3213',\n", | |
| " ['A32131', ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]]]]]]],\n", | |
| " 'A31': ['A31', ['A31_file_1', []]],\n", | |
| " 'A31_file_1': ['A31_file_1', []],\n", | |
| " 'A32': ['A32',\n", | |
| " ['A321',\n", | |
| " ['A3211',\n", | |
| " ['A3211_file_1', [], 'A32111', ['A32111_file_1', [], 'A32111_file_2', []]],\n", | |
| " 'A3212',\n", | |
| " ['A3212_file_1',\n", | |
| " [],\n", | |
| " 'A32122',\n", | |
| " ['A32122_file_1', [], 'A32122_file_2', []],\n", | |
| " 'A3212_file_2',\n", | |
| " []],\n", | |
| " 'A3213',\n", | |
| " ['A32131', ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]]]]]],\n", | |
| " 'A321': ['A321',\n", | |
| " ['A3211',\n", | |
| " ['A3211_file_1', [], 'A32111', ['A32111_file_1', [], 'A32111_file_2', []]],\n", | |
| " 'A3212',\n", | |
| " ['A3212_file_1',\n", | |
| " [],\n", | |
| " 'A32122',\n", | |
| " ['A32122_file_1', [], 'A32122_file_2', []],\n", | |
| " 'A3212_file_2',\n", | |
| " []],\n", | |
| " 'A3213',\n", | |
| " ['A32131', ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]]]]],\n", | |
| " 'A3211': ['A3211',\n", | |
| " ['A3211_file_1', [], 'A32111', ['A32111_file_1', [], 'A32111_file_2', []]]],\n", | |
| " 'A3211_file_1': ['A3211_file_1', []],\n", | |
| " 'A32111': ['A32111', ['A32111_file_1', [], 'A32111_file_2', []]],\n", | |
| " 'A32111_file_1': ['A32111_file_1', []],\n", | |
| " 'A32111_file_2': ['A32111_file_2', []],\n", | |
| " 'A3212': ['A3212',\n", | |
| " ['A3212_file_1',\n", | |
| " [],\n", | |
| " 'A32122',\n", | |
| " ['A32122_file_1', [], 'A32122_file_2', []],\n", | |
| " 'A3212_file_2',\n", | |
| " []]],\n", | |
| " 'A3212_file_1': ['A3212_file_1', []],\n", | |
| " 'A3212_file_2': ['A3212_file_2', []],\n", | |
| " 'A32122': ['A32122', ['A32122_file_1', [], 'A32122_file_2', []]],\n", | |
| " 'A32122_file_1': ['A32122_file_1', []],\n", | |
| " 'A32122_file_2': ['A32122_file_2', []],\n", | |
| " 'A3213': ['A3213',\n", | |
| " ['A32131', ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]]]],\n", | |
| " 'A32131': ['A32131',\n", | |
| " ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]]],\n", | |
| " 'A321311': ['A321311', ['A321311_file_1', [], 'A321311_file_2', []]],\n", | |
| " 'A321311_file_1': ['A321311_file_1', []],\n", | |
| " 'A321311_file_2': ['A321311_file_2', []],\n", | |
| " 'A4': ['A4',\n", | |
| " ['A41',\n", | |
| " ['A41_file_1',\n", | |
| " [],\n", | |
| " 'A411',\n", | |
| " ['A4111',\n", | |
| " ['A4111_file_1',\n", | |
| " [],\n", | |
| " 'A41111',\n", | |
| " ['A41111_file_1', [], 'A41111_file_2', [], 'A41111_file_3', []]],\n", | |
| " 'A4112',\n", | |
| " ['A41121', ['A41121_file_1', [], 'A41121_file_2', []]],\n", | |
| " 'A4113',\n", | |
| " ['A4113_file_1', [], 'A41131', ['A41131_file_1', []], 'A4113_file_2', []],\n", | |
| " 'A4114',\n", | |
| " ['A41141',\n", | |
| " ['A41141_file_1',\n", | |
| " [],\n", | |
| " 'A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]],\n", | |
| " 'A4114_file_1',\n", | |
| " []]]]]],\n", | |
| " 'A41': ['A41',\n", | |
| " ['A41_file_1',\n", | |
| " [],\n", | |
| " 'A411',\n", | |
| " ['A4111',\n", | |
| " ['A4111_file_1',\n", | |
| " [],\n", | |
| " 'A41111',\n", | |
| " ['A41111_file_1', [], 'A41111_file_2', [], 'A41111_file_3', []]],\n", | |
| " 'A4112',\n", | |
| " ['A41121', ['A41121_file_1', [], 'A41121_file_2', []]],\n", | |
| " 'A4113',\n", | |
| " ['A4113_file_1', [], 'A41131', ['A41131_file_1', []], 'A4113_file_2', []],\n", | |
| " 'A4114',\n", | |
| " ['A41141',\n", | |
| " ['A41141_file_1',\n", | |
| " [],\n", | |
| " 'A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]],\n", | |
| " 'A4114_file_1',\n", | |
| " []]]]],\n", | |
| " 'A41_file_1': ['A41_file_1', []],\n", | |
| " 'A411': ['A411',\n", | |
| " ['A4111',\n", | |
| " ['A4111_file_1',\n", | |
| " [],\n", | |
| " 'A41111',\n", | |
| " ['A41111_file_1', [], 'A41111_file_2', [], 'A41111_file_3', []]],\n", | |
| " 'A4112',\n", | |
| " ['A41121', ['A41121_file_1', [], 'A41121_file_2', []]],\n", | |
| " 'A4113',\n", | |
| " ['A4113_file_1', [], 'A41131', ['A41131_file_1', []], 'A4113_file_2', []],\n", | |
| " 'A4114',\n", | |
| " ['A41141',\n", | |
| " ['A41141_file_1',\n", | |
| " [],\n", | |
| " 'A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]],\n", | |
| " 'A4114_file_1',\n", | |
| " []]]],\n", | |
| " 'A4111': ['A4111',\n", | |
| " ['A4111_file_1',\n", | |
| " [],\n", | |
| " 'A41111',\n", | |
| " ['A41111_file_1', [], 'A41111_file_2', [], 'A41111_file_3', []]]],\n", | |
| " 'A4111_file_1': ['A4111_file_1', []],\n", | |
| " 'A41111': ['A41111',\n", | |
| " ['A41111_file_1', [], 'A41111_file_2', [], 'A41111_file_3', []]],\n", | |
| " 'A41111_file_1': ['A41111_file_1', []],\n", | |
| " 'A41111_file_2': ['A41111_file_2', []],\n", | |
| " 'A41111_file_3': ['A41111_file_3', []],\n", | |
| " 'A4112': ['A4112', ['A41121', ['A41121_file_1', [], 'A41121_file_2', []]]],\n", | |
| " 'A41121': ['A41121', ['A41121_file_1', [], 'A41121_file_2', []]],\n", | |
| " 'A41121_file_1': ['A41121_file_1', []],\n", | |
| " 'A41121_file_2': ['A41121_file_2', []],\n", | |
| " 'A4113': ['A4113',\n", | |
| " ['A4113_file_1', [], 'A41131', ['A41131_file_1', []], 'A4113_file_2', []]],\n", | |
| " 'A4113_file_1': ['A4113_file_1', []],\n", | |
| " 'A4113_file_2': ['A4113_file_2', []],\n", | |
| " 'A41131': ['A41131', ['A41131_file_1', []]],\n", | |
| " 'A41131_file_1': ['A41131_file_1', []],\n", | |
| " 'A4114': ['A4114',\n", | |
| " ['A41141',\n", | |
| " ['A41141_file_1',\n", | |
| " [],\n", | |
| " 'A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]],\n", | |
| " 'A4114_file_1',\n", | |
| " []]],\n", | |
| " 'A4114_file_1': ['A4114_file_1', []],\n", | |
| " 'A41141': ['A41141',\n", | |
| " ['A41141_file_1',\n", | |
| " [],\n", | |
| " 'A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]]],\n", | |
| " 'A41141_file_1': ['A41141_file_1', []],\n", | |
| " 'A411411': ['A411411',\n", | |
| " ['A4114111', ['A4114111_file_1', []], 'A411411_file_1', []]],\n", | |
| " 'A411411_file_1': ['A411411_file_1', []],\n", | |
| " 'A4114111': ['A4114111', ['A4114111_file_1', []]],\n", | |
| " 'A4114111_file_1': ['A4114111_file_1', []],\n", | |
| " 'A5': ['A5',\n", | |
| " ['A51',\n", | |
| " ['A511',\n", | |
| " ['A511_file_1', [], 'A511_file_2', []],\n", | |
| " 'A512',\n", | |
| " ['A512_file_1',\n", | |
| " [],\n", | |
| " 'A5121',\n", | |
| " ['A5121_file_1', [], 'A5121_file_2', []],\n", | |
| " 'A512_file_2',\n", | |
| " []],\n", | |
| " 'A513',\n", | |
| " []],\n", | |
| " 'A52',\n", | |
| " ['A521',\n", | |
| " ['A521_file_1',\n", | |
| " [],\n", | |
| " 'A5211',\n", | |
| " ['A5211_file_1', [], 'A5211_file_2', [], 'A5211_file_3', []]]],\n", | |
| " 'A53',\n", | |
| " ['A53_file_1', [], 'A53_file_2', [], 'A53_file_3', []],\n", | |
| " 'A54',\n", | |
| " []]],\n", | |
| " 'A51': ['A51',\n", | |
| " ['A511',\n", | |
| " ['A511_file_1', [], 'A511_file_2', []],\n", | |
| " 'A512',\n", | |
| " ['A512_file_1',\n", | |
| " [],\n", | |
| " 'A5121',\n", | |
| " ['A5121_file_1', [], 'A5121_file_2', []],\n", | |
| " 'A512_file_2',\n", | |
| " []],\n", | |
| " 'A513',\n", | |
| " []]],\n", | |
| " 'A511': ['A511', ['A511_file_1', [], 'A511_file_2', []]],\n", | |
| " 'A511_file_1': ['A511_file_1', []],\n", | |
| " 'A511_file_2': ['A511_file_2', []],\n", | |
| " 'A512': ['A512',\n", | |
| " ['A512_file_1',\n", | |
| " [],\n", | |
| " 'A5121',\n", | |
| " ['A5121_file_1', [], 'A5121_file_2', []],\n", | |
| " 'A512_file_2',\n", | |
| " []]],\n", | |
| " 'A512_file_1': ['A512_file_1', []],\n", | |
| " 'A512_file_2': ['A512_file_2', []],\n", | |
| " 'A5121': ['A5121', ['A5121_file_1', [], 'A5121_file_2', []]],\n", | |
| " 'A5121_file_1': ['A5121_file_1', []],\n", | |
| " 'A5121_file_2': ['A5121_file_2', []],\n", | |
| " 'A513': ['A513', []],\n", | |
| " 'A52': ['A52',\n", | |
| " ['A521',\n", | |
| " ['A521_file_1',\n", | |
| " [],\n", | |
| " 'A5211',\n", | |
| " ['A5211_file_1', [], 'A5211_file_2', [], 'A5211_file_3', []]]]],\n", | |
| " 'A521': ['A521',\n", | |
| " ['A521_file_1',\n", | |
| " [],\n", | |
| " 'A5211',\n", | |
| " ['A5211_file_1', [], 'A5211_file_2', [], 'A5211_file_3', []]]],\n", | |
| " 'A521_file_1': ['A521_file_1', []],\n", | |
| " 'A5211': ['A5211',\n", | |
| " ['A5211_file_1', [], 'A5211_file_2', [], 'A5211_file_3', []]],\n", | |
| " 'A5211_file_1': ['A5211_file_1', []],\n", | |
| " 'A5211_file_2': ['A5211_file_2', []],\n", | |
| " 'A5211_file_3': ['A5211_file_3', []],\n", | |
| " 'A53': ['A53', ['A53_file_1', [], 'A53_file_2', [], 'A53_file_3', []]],\n", | |
| " 'A53_file_1': ['A53_file_1', []],\n", | |
| " 'A53_file_2': ['A53_file_2', []],\n", | |
| " 'A53_file_3': ['A53_file_3', []],\n", | |
| " 'A54': ['A54', []]}" | |
| ] | |
| }, | |
| "execution_count": 19, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Nodelist data\n", | |
| "nodelists" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "hydraulic-potter", | |
| "metadata": {}, | |
| "source": [ | |
| "## Implementation" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "id": "received-eclipse", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Following is Bread-First Traversal\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "['A',\n", | |
| " 'A1',\n", | |
| " 'A2',\n", | |
| " 'A3',\n", | |
| " 'A4',\n", | |
| " 'A5',\n", | |
| " 'A11',\n", | |
| " 'A12',\n", | |
| " 'A13',\n", | |
| " 'A21',\n", | |
| " 'A22',\n", | |
| " 'A31',\n", | |
| " 'A32',\n", | |
| " 'A41',\n", | |
| " 'A51',\n", | |
| " 'A52',\n", | |
| " 'A53',\n", | |
| " 'A54',\n", | |
| " 'A111',\n", | |
| " 'A112',\n", | |
| " 'A121',\n", | |
| " 'A122',\n", | |
| " 'A123',\n", | |
| " 'A13_file_1',\n", | |
| " 'A211',\n", | |
| " 'A212',\n", | |
| " 'A213',\n", | |
| " 'A221',\n", | |
| " 'A31_file_1',\n", | |
| " 'A321',\n", | |
| " 'A411',\n", | |
| " 'A41_file_1',\n", | |
| " 'A511',\n", | |
| " 'A512',\n", | |
| " 'A513',\n", | |
| " 'A521',\n", | |
| " 'A53_file_1',\n", | |
| " 'A53_file_2',\n", | |
| " 'A53_file_3',\n", | |
| " 'A111_file_1',\n", | |
| " 'A112_file_1',\n", | |
| " 'A112_file_2',\n", | |
| " 'A121_file_1',\n", | |
| " 'A1221',\n", | |
| " 'A211_file_1',\n", | |
| " 'A211_file_2',\n", | |
| " 'A2121',\n", | |
| " 'A2131',\n", | |
| " 'A2211',\n", | |
| " 'A2212',\n", | |
| " 'A221_file_1',\n", | |
| " 'A3211',\n", | |
| " 'A3212',\n", | |
| " 'A3213',\n", | |
| " 'A4111',\n", | |
| " 'A4112',\n", | |
| " 'A4113',\n", | |
| " 'A4114',\n", | |
| " 'A511_file_1',\n", | |
| " 'A511_file_2',\n", | |
| " 'A5121',\n", | |
| " 'A512_file_1',\n", | |
| " 'A512_file_2',\n", | |
| " 'A5211',\n", | |
| " 'A521_file_1',\n", | |
| " 'A1221_file_1',\n", | |
| " 'A1221_file_2',\n", | |
| " 'A21211',\n", | |
| " 'A2121_file_1',\n", | |
| " 'A2121_file_2',\n", | |
| " 'A21311',\n", | |
| " 'A2131_file_1',\n", | |
| " 'A2211_file_1',\n", | |
| " 'A2211_file_2',\n", | |
| " 'A2212_file_1',\n", | |
| " 'A32111',\n", | |
| " 'A3211_file_1',\n", | |
| " 'A32122',\n", | |
| " 'A3212_file_1',\n", | |
| " 'A3212_file_2',\n", | |
| " 'A32131',\n", | |
| " 'A41111',\n", | |
| " 'A4111_file_1',\n", | |
| " 'A41121',\n", | |
| " 'A41131',\n", | |
| " 'A4113_file_1',\n", | |
| " 'A4113_file_2',\n", | |
| " 'A41141',\n", | |
| " 'A4114_file_1',\n", | |
| " 'A5121_file_1',\n", | |
| " 'A5121_file_2',\n", | |
| " 'A5211_file_1',\n", | |
| " 'A5211_file_2',\n", | |
| " 'A5211_file_3',\n", | |
| " 'A21211_file_1',\n", | |
| " 'A21211_file_2',\n", | |
| " 'A21311_file_1',\n", | |
| " 'A21311_file_2',\n", | |
| " 'A32111_file_1',\n", | |
| " 'A32111_file_2',\n", | |
| " 'A32122_file_1',\n", | |
| " 'A32122_file_2',\n", | |
| " 'A321311',\n", | |
| " 'A41111_file_1',\n", | |
| " 'A41111_file_2',\n", | |
| " 'A41111_file_3',\n", | |
| " 'A41121_file_1',\n", | |
| " 'A41121_file_2',\n", | |
| " 'A41131_file_1',\n", | |
| " 'A411411',\n", | |
| " 'A41141_file_1',\n", | |
| " 'A321311_file_1',\n", | |
| " 'A321311_file_2',\n", | |
| " 'A4114111',\n", | |
| " 'A411411_file_1',\n", | |
| " 'A4114111_file_1']" | |
| ] | |
| }, | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Breadth-First Search\n", | |
| "result_bfs = BreadthFirstSearch(tree_set, 'A')\n", | |
| "print('Following is Bread-First Traversal')\n", | |
| "result_bfs" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 21, | |
| "id": "embedded-contractor", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "Following is Depth-First Traversal\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "['A',\n", | |
| " 'A1',\n", | |
| " 'A11',\n", | |
| " 'A111',\n", | |
| " 'A111_file_1',\n", | |
| " 'A112',\n", | |
| " 'A112_file_1',\n", | |
| " 'A112_file_2',\n", | |
| " 'A12',\n", | |
| " 'A121',\n", | |
| " 'A121_file_1',\n", | |
| " 'A122',\n", | |
| " 'A1221',\n", | |
| " 'A1221_file_1',\n", | |
| " 'A1221_file_2',\n", | |
| " 'A123',\n", | |
| " 'A13',\n", | |
| " 'A13_file_1',\n", | |
| " 'A2',\n", | |
| " 'A21',\n", | |
| " 'A211',\n", | |
| " 'A211_file_1',\n", | |
| " 'A211_file_2',\n", | |
| " 'A212',\n", | |
| " 'A2121',\n", | |
| " 'A21211',\n", | |
| " 'A21211_file_1',\n", | |
| " 'A21211_file_2',\n", | |
| " 'A2121_file_1',\n", | |
| " 'A2121_file_2',\n", | |
| " 'A213',\n", | |
| " 'A2131',\n", | |
| " 'A21311',\n", | |
| " 'A21311_file_1',\n", | |
| " 'A21311_file_2',\n", | |
| " 'A2131_file_1',\n", | |
| " 'A22',\n", | |
| " 'A221',\n", | |
| " 'A2211',\n", | |
| " 'A2211_file_1',\n", | |
| " 'A2211_file_2',\n", | |
| " 'A2212',\n", | |
| " 'A2212_file_1',\n", | |
| " 'A221_file_1',\n", | |
| " 'A3',\n", | |
| " 'A31',\n", | |
| " 'A31_file_1',\n", | |
| " 'A32',\n", | |
| " 'A321',\n", | |
| " 'A3211',\n", | |
| " 'A32111',\n", | |
| " 'A32111_file_1',\n", | |
| " 'A32111_file_2',\n", | |
| " 'A3211_file_1',\n", | |
| " 'A3212',\n", | |
| " 'A32122',\n", | |
| " 'A32122_file_1',\n", | |
| " 'A32122_file_2',\n", | |
| " 'A3212_file_1',\n", | |
| " 'A3212_file_2',\n", | |
| " 'A3213',\n", | |
| " 'A32131',\n", | |
| " 'A321311',\n", | |
| " 'A321311_file_1',\n", | |
| " 'A321311_file_2',\n", | |
| " 'A4',\n", | |
| " 'A41',\n", | |
| " 'A411',\n", | |
| " 'A4111',\n", | |
| " 'A41111',\n", | |
| " 'A41111_file_1',\n", | |
| " 'A41111_file_2',\n", | |
| " 'A41111_file_3',\n", | |
| " 'A4111_file_1',\n", | |
| " 'A4112',\n", | |
| " 'A41121',\n", | |
| " 'A41121_file_1',\n", | |
| " 'A41121_file_2',\n", | |
| " 'A4113',\n", | |
| " 'A41131',\n", | |
| " 'A41131_file_1',\n", | |
| " 'A4113_file_1',\n", | |
| " 'A4113_file_2',\n", | |
| " 'A4114',\n", | |
| " 'A41141',\n", | |
| " 'A411411',\n", | |
| " 'A4114111',\n", | |
| " 'A4114111_file_1',\n", | |
| " 'A411411_file_1',\n", | |
| " 'A41141_file_1',\n", | |
| " 'A4114_file_1',\n", | |
| " 'A41_file_1',\n", | |
| " 'A5',\n", | |
| " 'A51',\n", | |
| " 'A511',\n", | |
| " 'A511_file_1',\n", | |
| " 'A511_file_2',\n", | |
| " 'A512',\n", | |
| " 'A5121',\n", | |
| " 'A5121_file_1',\n", | |
| " 'A5121_file_2',\n", | |
| " 'A512_file_1',\n", | |
| " 'A512_file_2',\n", | |
| " 'A513',\n", | |
| " 'A52',\n", | |
| " 'A521',\n", | |
| " 'A5211',\n", | |
| " 'A5211_file_1',\n", | |
| " 'A5211_file_2',\n", | |
| " 'A5211_file_3',\n", | |
| " 'A521_file_1',\n", | |
| " 'A53',\n", | |
| " 'A53_file_1',\n", | |
| " 'A53_file_2',\n", | |
| " 'A53_file_3',\n", | |
| " 'A54']" | |
| ] | |
| }, | |
| "execution_count": 21, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# Depth-First Search\n", | |
| "vertices = []\n", | |
| "visited = set()\n", | |
| "DepthFirstSearch(visited, tree_set, 'A')\n", | |
| "print('Following is Depth-First Traversal')\n", | |
| "vertices" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "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.8.3" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment