2020年の仕事について1日1問0423質問52

/ ** 
 * 
 * [タイトル] 
 *バイナリツリーをファイルとして記録するプロセスは、バイナリツリー
 のシリアル化呼ばれ、ファイルの内容から元のバイナリツリー再構築するプロセスは、バイナリツリーの逆シリアル化呼ばれます。バイナリツリーのヘッドノードヘッドが与えられた場合、バイナリツリーノード値のタイプは
 * 32ビット整数として知られています。バイナリツリーのシリアル化スキームを設計し、コードで実装してください。
 * [ソリューション] 
 *シリアライゼーションとデシリアライゼーションは、プレオーダートラバーサルによって実現されます。
 *最初に、プレオーダートラバーサルでのシリアル化プロセスを紹介します。最初に、シリアル化された結果の文字列がstrであり、最初はstr = ""であると想定します。
 *最初にバイナリツリーをトラバースし、nullノードが検出された場合は、「#!」を追加します。strの終わりに、「#」はノードが空であることを意味します。
 *ノード値は存在しません。「!」は値の終わりを意味します。空でないノードに、ノード値が3であると想定して
 、* strの最後に「3!」を追加します。
 * 
 * @author雪itor 
 * @Slogan時計はまだ動いています。
 * @関数はバイナリツリーをシリアル化します
 * 
 * /

  

public class SerivalTree { 

    public static String servialTree(Node head){ 
        if(head == null){ 
            return "#!"; 
        } 
        文字列res = head.value + "!"; 
        res + = servialTree(head.left); 
        res + = servialTree(head.right); 

        解像度を返す; 
    } 

    public static void main(String [] args){ 
        Node head = new Node(1); 
        左ノード=新しいノード(2); 
        ノード右=新しいノード(3); 

        head.right = right; 
        head.left = left; 
        文字列の結果= servialTree(head); 
        System.out.println(result); 
    } 
} 
クラスNode { 
    public int value;
    公開ノード権。
    パブリックノードが残っています。
    public Node(int data){ 
        this.value = data; 
    } 
}

  

 

 

おすすめ

転載: www.cnblogs.com/walxt/p/12759984.html