{"id":20804432,"url":"https://github.com/umer0586/depth-first-search","last_synced_at":"2025-06-11T21:08:39.805Z","repository":{"id":256946635,"uuid":"158076726","full_name":"umer0586/depth-first-search","owner":"umer0586","description":"Depth first search algorithm and java implementation","archived":false,"fork":false,"pushed_at":"2018-11-18T11:59:24.000Z","size":42,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-18T12:53:39.012Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/umer0586.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-18T11:29:11.000Z","updated_at":"2018-11-18T11:59:26.000Z","dependencies_parsed_at":"2024-09-14T02:45:09.077Z","dependency_job_id":null,"html_url":"https://github.com/umer0586/depth-first-search","commit_stats":null,"previous_names":["umer0586/depth-first-search"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umer0586%2Fdepth-first-search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umer0586%2Fdepth-first-search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umer0586%2Fdepth-first-search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/umer0586%2Fdepth-first-search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/umer0586","download_url":"https://codeload.github.com/umer0586/depth-first-search/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243148938,"owners_count":20244081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T19:09:22.175Z","updated_at":"2025-03-12T03:27:13.304Z","avatar_url":"https://github.com/umer0586.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DEPTH FIRST SEARCH\n\nDepth first search algorithm and java implementation\n\n# ALGORITHM\n\u003cpre\u003e\n\nbegin \nopen := [Start];\nclosed := [ ];\n while open # [ ] do\n begin\n remove leftmost state from open, call it X; \n if X is a goal then return SUCCESS\n   else begin\n        generate children of X;\n        put X on closed; \n        discard children of X if already on open or closed;\n        put remaining children on left end of open\n    end \n  end; \n return FAIL \nend. \n\n\u003c/pre\u003e\n\n# Given tree\n![Tree](https://github.com/umer0586/depth-first-search/blob/master/tree.png)\n\n# Applying alogrithm on above tree\nfinding goal **G** from root **A**\n\u003cpre\u003e\n1. open = [A]; closed = [ ] \n2. open = [B,C,D]; closed = [A] \n3. open = [E,F,C,D]; closed = [B,A] \n4. open = [K,L,F,C,D]; closed = [E,B,A]\n5. open = [S,L,F,C,D]; closed = [K,E,B,A]\n6. open = [L,F,C,D]; closed = [S,K,E,B,A] \n7. open = [T,F,C,D]; closed = [L,S,K,E,B,A] \n8. open = [F,C,D]; closed = [T,L,S,K,E,B,A]\n9. open = [M,C,D], as L is already on closed; closed = [F,T,L,S,K,E,B,A] \n10. open = [C,D]; closed = [M,F,T,L,S,K,E,B,A] \n11. open = [G,H,D]; closed = [C,M,F,T,L,S,K,E,B,A] \ngoal \u003cbold\u003eG\u003c/bold\u003e found\n\u003c/pre\u003e\n\n# Java example\n```java\n\t\tTree\u003cCharacter\u003e tree = new Tree\u003cCharacter\u003e();\n```\t\n![Tree](https://github.com/umer0586/depth-first-search/blob/master/tree.png)\n    \n```java\t\t\n\t\ttree.addParentChildren('A','B','C','D'); // A is parent of B, C and D\n\t\ttree.addParentChildren('B', 'E','F'); // B is parent of E and F\n\t\ttree.addParentChildren('E', 'K','L');\n\t\ttree.addParentChildren('K', 'S');\n\t\ttree.addParentChildren('L', 'T');\n\t\ttree.addParentChildren('F', 'L','M');\n\t\ttree.addParentChildren('C', 'G','H');\n\t\ttree.addParentChildren('G', 'N');\n\t\ttree.addParentChildren('H', 'O','P');\n\t\ttree.addParentChildren('D', 'I','J');\n\t\ttree.addParentChildren('I', 'P','Q');\n\t\ttree.addParentChildren('P', 'U');\n\t\ttree.addParentChildren('J', 'R');\n\t\t\n\t\t//Now for Terminal or leaf nodes no children are specified\n\t\ttree.addParentChildren('S'); \n\t\ttree.addParentChildren('T');\n\t\ttree.addParentChildren('M');\n\t\ttree.addParentChildren('N');\n\t\ttree.addParentChildren('O');\n\t\ttree.addParentChildren('U');\n\t\ttree.addParentChildren('Q');\n\t\ttree.addParentChildren('R');\n\t\t\n\t\n\t\ttree.findGoal('G','A'); // find goal 'G' from 'A'\n```\n# Console output\n\u003cpre\u003e\nConsole Output:-\nX = A open = [A] close = []\nX = B open = [B, C, D] close = [A]\nX = E open = [E, F, C, D] close = [A, B]\nX = K open = [K, L, F, C, D] close = [A, B, E]\nX = S open = [S, L, F, C, D] close = [A, B, E, K]\nX = L open = [L, F, C, D] close = [A, B, S, E, K]\nX = T open = [T, F, C, D] close = [A, B, S, E, K, L]\nX = F open = [F, C, D] close = [A, B, S, T, E, K, L]\nX = M open = [M, C, D] close = [A, B, S, T, E, F, K, L]\nX = C open = [C, D] close = [A, B, S, T, E, F, K, L, M]\nX = G open = [G, H, D] close = [A, B, S, C, T, E, F, K, L, M]\ngoal : G found\n\n\u003c/pre\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumer0586%2Fdepth-first-search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumer0586%2Fdepth-first-search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumer0586%2Fdepth-first-search/lists"}