Depth First Search 코드로 만들기

Study/알고리즘2018.08.28 12:17
코드화 하기전 생각하기
 To keep track of the nodes visited ,a stack is used.

1)  노드를 방문한 후 모든 노드를 스택으로 밀어 넣습니다.
2) 다음 노드의 경우, 스택에서 노드를 열고 여기에 연결된 모든 노드를 스택으로 밀어 넣습니다.
3) 노드를 찾거나 모든 노드를 방문할 때까지 1과 2)를 반복합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
struct Node 
{
     struct node* l;
     struct node* r;     /*two pointers ,one pointing to node to 
                                the right and one to left ( both below the current node) */
     int d;
};
 
 
void SearchNode( Node* root)
{

   Node *= root;                                 // root node
   if(p != NULL)
   {    
     queue.enqueue(p);                            // queue , store objects of node class 
     while!queue.isEmpty())                   //functions of putting in, 
     {
       p = queue.dequeue();                     // reading from the queue
       p.visit();                                             // we want with a given node(prints it, or changes data in it etc.),
     
       if(p.left != NULL)                              //left, right child of a given Node 
         queue.enqueue(p.left);                    // putting in left child node
      
       if(p.right != NULL)
         queue.enqueue(p.right);                 // putting in right child node
     }
   }
}
 

cs


'Study > 알고리즘' 카테고리의 다른 글

Depth First Search 코드로 만들기  (0) 2018.08.28
Tree search  (0) 2018.08.28
LongestWord - C++  (2) 2018.02.20
문자가지고 순서대로 정열했는지 판정하기  (0) 2018.01.11
Binary Search with example  (0) 2016.11.19
Linear Search 1  (0) 2016.11.19

작성자

Posted by 비타오백

관련 글

댓글 영역

티스토리 툴바