当前位置: 首页 > news >正文

站长平台官网wordpress add action

站长平台官网,wordpress add action,网站建设优化文档,一个公司做100个网站1 序列化与反序列化 二叉树的序列化与反序列化 1.1 实现思路 方式一:前序遍历 通过前序遍历方式实现二叉树的序列化将结果存入队列中要注意空节点也要存null 方式二:层序遍历 层序遍历也是用队列实现注意从左到右,遇到空节点存null 1.2 …

1 序列化与反序列化

二叉树的序列化与反序列化

1.1 实现思路
  1. 方式一:前序遍历
    1. 通过前序遍历方式实现二叉树的序列化
    2. 将结果存入队列中
    3. 要注意空节点也要存null
  2. 方式二:层序遍历
    1. 层序遍历也是用队列实现
    2. 注意从左到右,遇到空节点存null
1.2 代码实现
/*** 二叉树的序列化与反序列化** @author wen*/
public class SerializeAndReconstructTree {public static class Node {public int val;public Node left;public Node right;public Node(int val) {this.val = val;}}/*** 二叉树的序列化(前序遍历实现)** @param head 头节点* @return 返回一个队列*/public static Queue<String> preSerial(Node head) {Queue<String> queue = new LinkedList<>();pres(queue, head);return queue;}private static void pres(Queue<String> queue, Node head) {if (head == null) {queue.add(null);} else {queue.add(String.valueOf(head.val));pres(queue, head.left);pres(queue, head.right);}}/*** 二叉树的反序列化(前序遍历实现)** @param preQueue 存着二叉树序列化的队列* @return 返回,反序列化的二叉树头节点*/public static Node buildByPreQueue(Queue<String> preQueue) {if (preQueue == null || preQueue.isEmpty()) {return null;}return preBuild(preQueue);}private static Node preBuild(Queue<String> preQueue) {String val = preQueue.poll();if (val == null) {return null;}Node head = new Node(Integer.parseInt(val));head.left = preBuild(preQueue);head.right = preBuild(preQueue);return head;}/*** 二叉树序列化(层序遍历实现)** @param head 二叉树头节点* @return 返回序列化后的队列*/public static Queue<String> levelSerial(Node head) {Queue<String> ans = new LinkedList<>();if (head == null) {ans.add(null);} else {ans.add(String.valueOf(head.val));Queue<Node> help = new LinkedList<>();help.add(head);while (!help.isEmpty()) {Node cur = help.poll();if (cur.left != null) {ans.add(String.valueOf(cur.left.val));help.add(cur.left);} else {ans.add(null);}if (cur.right != null) {ans.add(String.valueOf(cur.right.val));help.add(cur.right);} else {ans.add(null);}}}return ans;}/*** 反序列化(层序遍历实现)** @param levelQueue 序列化存入的队列* @return 返回,反序列化的二叉树头节点*/public static Node buildByLevelQueue(Queue<String> levelQueue) {if (levelQueue == null || levelQueue.isEmpty()) {return null;}Node head = generateNode(levelQueue.poll());Queue<Node> queue = new LinkedList<>();if (head != null) {queue.add(head);}Node node = null;while (!queue.isEmpty()) {node = queue.poll();node.left = generateNode(levelQueue.poll());node.right = generateNode(levelQueue.poll());if (node.left != null) {queue.add(node.left);}if (node.right != null) {queue.add(node.right);}}return head;}private static Node generateNode(String val) {if (val == null) {return null;}return new Node(Integer.parseInt(val));}
}
http://www.yayakq.cn/news/748032/

相关文章:

  • 福建住房和城乡建设厅网站首页wordpress自定义过滤
  • 做机械加工外贸网站哪家好html菜鸟教程首页
  • 确保网站建设又在前列百度应用市场app下载
  • mvc5网站开发之六2017网站建设方案
  • 经典网站赏析网站建站报告2000字
  • asp爆网站绝对路径wordpress 文章页404
  • 网站的形式搜索引擎入口大全
  • 定制企业网站建设哪家好外贸网站有哪些
  • 网站后台shopadmin输在哪里学生创意设计作品说明
  • 唐山市城乡建设局网站有什么做分销的几个网站
  • 微网站什么意思山东天元建设集团破产
  • 编程网站哪个好wordpress做超链接
  • 3d打印网站开发中企动力如何
  • 企业网站的基本内容有哪些食品包装设计规范及包装标准
  • 网站建设介绍语企业网站设计代码
  • 西安网站建设盈科注册网站怎么注销
  • 石景山区公司网站建设网站 不备案
  • 设计网站推荐外网ppt设计师兼职
  • 关于绿色环保网站的建设历程j昆明网站制作公司
  • uc官方网站开发者中心网站开发常用jquery插件总结(四)验证插件validation
  • 网站建设合同书wordpress归档插件
  • 做外卖网站需要多少钱大连装修公司哪家好
  • 企业营销型网站分析制作销售网站
  • 用ps做美食网站开发手机网站用什么好
  • 网站建设技能考试试题三建一个全部由自己控制的网站需要多少钱
  • 煤矿建设工程质量监督总站网站货源网站开发
  • 北京网站建设建站wap网站发布
  • 伪静态网站如何做百度速页建站
  • 北京建设网站专家网站首页排名没了
  • 学校网站报价方案买了个服务器 怎么做网站