今際の国の呵呵君: [Algorithm]Implement DFS Iteratively



今際の国の呵呵君: [Algorithm]Implement DFS Iteratively

DFS是我们非常熟悉的算法,并且在图当中 也有很多应用。DFS的递归写法大家都很清楚,非常简单并且简洁。这里我们要讨论的是怎么用循环的方法实现图的DFS遍历。
既然要用循环模拟递归,我们肯定是需要用到stack的。具体的思路是,对于给定的图,选定任意节点为起始节点:

  1. 起始节点入栈并标记
  2. 如果栈不为空:
    1. 访问栈顶节点v
    2. 选择一个v没有被标记过的邻接节点,标记并入栈
    3. 如果v没有未被标记的邻接节点,pop栈顶节点
    4. 重复以上三步直到栈为空

Read full article from 今際の国の呵呵君: [Algorithm]Implement DFS Iteratively


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts