๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

์ด์ง„ํŠธ๋ฆฌ์ˆœํšŒ : ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰(DFS : Depth-fist Search) ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

์ด์ง„ํŠธ๋ฆฌ์ˆœํšŒ : ๊นŠ์ด์šฐ์„ ํƒ์ƒ‰(DFS : Depth-fist Search)

์š”์ผ์ด 2021. 7. 27. 01:47
๋ฐ˜์‘ํ˜•

์ด์ง„ํŠธ๋ฆฌ ์ˆœํšŒ์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€

- ๊ธฐ๋ณธ์ ์œผ๋กœ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ˆœํšŒ

 

์ „์œ„์ˆœํšŒ : ๋ถ€๋ชจ๋…ธ๋“œ๊ฐ€ ๋งจ ์•ž ์œ„์น˜

์ค‘์œ„์ˆœํšŒ : ๋ถ€๋ชจ๋…ธ๋“œ๊ฐ€ ์ค‘๊ฐ„ ์œ„์น˜

ํ›„์œ„์ˆœํšŒ : ๋ถ€๋ชจ๋…ธ๋“œ๊ฐ€ ๋งจ ๋’ค ์œ„์น˜

 

- 2022.01.23

import java.util.*;

class Node{
    int data;
    Node lt, rt;
    public Node(int val){
        data = val;
        lt = rt = null;
    }
}


public class Main {
    Node root;
    public void DFS(Node root){
        // ์ „์œ„์ˆœํšŒ
        if(root == null){
            return;
        }else{
            System.out.print(root.data + " ");
            DFS(root.lt);
            DFS(root.rt);
        }
        // ์ค‘์œ„์ˆœํšŒ
        if(root == null){
            return;
        }else{
            DFS(root.lt);
            System.out.print(root.data + " ");
            DFS(root.rt);
        }
        // ํ›„์œ„์ˆœํšŒ
        if(root == null){
            return;
        }else{
            DFS(root.lt);
            DFS(root.rt);
            System.out.print(root.data + " ");
        }
    }

    public static void main(String args[]){
        Main tree = new Main();
        tree.root = new Node(1);
        tree.root.lt = new Node(2);
        tree.root.rt = new Node(3);
        tree.root.lt.lt = new Node(4);
        tree.root.lt.rt = new Node(5);
        tree.root.rt.lt = new Node(6);
        tree.root.rt.rt = new Node(7);
        tree.DFS(tree.root);
    }

}

- ์—ฐ์Šต ์ฝ”๋“œ

import java.util.*;

class Node{
	int data;
	Node lt, rt;
	public Node(int val) {
		data = val;
		lt=rt=null;
	}
}

public class Main {
	
	Node root;
	
	public void DFS(Node root) {
		if(root == null) {
			return;
		}else {
			// ์ „์œ„์ˆœํšŒ
			System.out.print(root.data + " ");
			DFS(root.lt);
			// ์ค‘์œ„์ˆœํšŒ
			System.out.print(root.data + " ");
			DFS(root.rt);
			// ํ›„์œ„์ˆœํšŒ
			System.out.print(root.data + " ");
		}
	}
	
	public static void main(String args[]) {
		Main tree = new Main();
		tree.root = new Node(1);
		tree.root.lt = new Node(2);
		tree.root.rt = new Node(3);
		tree.root.lt.lt = new Node(4);
		tree.root.lt.rt = new Node(5);
		tree.root.rt.rt = new Node(6);
		tree.DFS(tree.root);
	}

}

 

Comments