資料結構演算法 (樹 的基本演算法)

來源:互聯網
上載者:User

標籤:col   tree   演算法   分享   span   非遞迴   ==   als   private   

一、樹的序列化 和還原序列化

1) 將二叉樹進行序列化  和還原序列化; 使用的是前序.

 1 package com.tree; 2  3 import java.util.LinkedList; 4 import java.util.Queue; 5  6 // 將一個兩叉樹 序列化成 字串 ;  7 // 和將一字串 反序列為一個樹. 8 public class TreeNode_Serialization { 9     public static void main(String[] args) {10         TreeNode_Serialization s = new TreeNode_Serialization();11         String str = "2!3!10!#!#!12!123!#!#!#!18!100!#!#!#!"; // 前序12         TreeNode node = s.pre_deserializationTreeNode(str);13         s.test(node);14         System.out.println();15         System.out.println(s.pre_serializTreeNode(node));16     }17     // 將一個兩叉樹 序列化成 字串18     public String pre_serializTreeNode(TreeNode tree) {19         if (tree == null) {20             return "#!";21         }22         String str = tree.val + "!";23         str += pre_serializTreeNode(tree.left);24         str += pre_serializTreeNode(tree.right);25         return str;26     }27     // 將一個 字串 反序列為一個樹;// 前序走訪還原序列化28     public TreeNode pre_deserializationTreeNode(String str) {29         String[] arrStr = str.split("!");30         Queue<String> qu = new LinkedList<String>();31         for (String s : arrStr) {32             qu.add(s);33         }34         return pre_deserializationTreeNodeCore(qu);35     }36     // 前序走訪還原序列化。37     private TreeNode pre_deserializationTreeNodeCore(Queue<String> qu) {38         String str = qu.poll();39         TreeNode tree = new TreeNode();40         if ("#".equals(str)) {41             return null;42         }43         tree.left = pre_deserializationTreeNodeCore(qu);44         tree.val = Integer.valueOf(str);45         tree.right = pre_deserializationTreeNodeCore(qu);46         return tree;47     }48     public void test(TreeNode tree) {49         if (tree != null) {50             test(tree.left);51             System.out.print(tree.val + " ");52             test(tree.right);53         }54     }55 }
View Code

2) 將二叉樹進行序列化  和還原序列化; 使用的是層次遍曆.

二 、樹的遍曆(前中後【遞迴與非遞迴】,層次,顯示結構的層次遍曆)

  

 

資料結構演算法 (樹 的基本演算法)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.