여러 갈래 나무의 깊이를 두루 훑어보다

1772 단어 기타
문제: 하나의 루트 디렉터리에 여러 개의 하위 디렉터리가 있고, 각각의 하위 디렉터리에 여러 개의 하위 디렉터리가 있으며, 순서대로 디렉터리 파일을 깊이 있게 옮겨다니도록 요구합니다.
결점 객체를 정의하려면 다음과 같이 하십시오.
package test;
import java.util.List;

public class Node {

	protected int value;
	
	protected List sonList;
	
	public Node(int value,List sonList){
		this.value = value;
		this.sonList = sonList;
	}
	
}

깊이 스트리밍 알고리즘은 사실 두 갈래 나무의 앞차례 스트리밍 원리와 같다.
package test;

import java.util.ArrayList;
import java.util.List;

public class TestNode {

	public static void main(String[] args) {
		List sonList = new ArrayList();// list
		List sonList11 = new ArrayList();// list
		List sonList31 = new ArrayList();// list
			Node node11 = new Node(11, null);
			Node node12 = new Node(12, null);
			Node node13 = new Node(13, null);
			sonList11.add(node11);
			sonList11.add(node12);
			sonList11.add(node13);
			Node node1 = new Node(1, sonList11);
			Node node2 = new Node(2, null);
			Node node3 = new Node(3, sonList31);
			sonList.add(node1);
			sonList.add(node2);
			sonList.add(node3);
			Node node31 = new Node(31, null);
			Node node32 = new Node(32, null);
			Node node33 = new Node(33, null);
			sonList31.add(node31);
			sonList31.add(node32);
			sonList31.add(node33);
		Node root = new Node(0, sonList);
		preOrder(root);
	}

	/**
	 * @   
	 * @ void
	 * @ 835890
	 * @ 2017 4 26 
	 */
	private static void preOrder(Node root) {
		if(root != null){
			System.out.print(root.value + " ");
			if(root.sonList != null){
				for (int i = 0; i < root.sonList.size(); i++) {
					preOrder(root.sonList.get(i));
				}
			}
		}
	}
	
}

실행 결과:
0 1 11 12 13 2 3 31 32 33

좋은 웹페이지 즐겨찾기