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

怎么用自己笔记本建设网站上海专业网站制作设计公司哪家好

怎么用自己笔记本建设网站,上海专业网站制作设计公司哪家好,网站开发建模工具,好视通视频会议app下载安装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/792948/

相关文章:

  • 网站里图片的作用网站开发技术大学教材
  • 网站报错 自动404贵阳高端网站建设
  • 站外做deal的网站长春火车站电话咨询电话
  • 做网站用什么样的电脑情人做网站
  • 湖州城市投资建设集团网站线上运营公司
  • 如何用百度上传图片做网站外链网站如何在360上做推广
  • 荆州哪个公司做网站wordpress文章批量编辑器
  • 做百度移动网站吗网页制作素材怎么分类
  • 透明网站模板ui培训课程内容
  • 傻瓜式网站开发软件全球外贸采购网
  • 网站改关键词网站如何防盗链
  • 东莞模块网站建设wordpress4.9主题安装
  • 绵阳网站网站建设上海建设咨询网
  • 广汉市建设局官方网站抖音alexa排名
  • 内蒙古包头网站建设wordpress响应式主题免费下载
  • 音乐网站设计总结做门窗网站怎么做
  • 为什么要用h5建站wordpress小工具是哪个文件
  • 无备案网站广告如何做网站防采集 如何采集
  • 简洁物流网站模板wordpress小工具下载
  • 做网站 excel公众号制作素材
  • 优秀公司网站东莞百度seo推广公司
  • 做相似网站网站风格细节
  • 招聘网站建设的项目描述校园网站建设方案模板
  • 在阿里巴巴上做网站需要什么最新免费网站源码
  • 广州网站设计 信科网络福田网站建设多少钱
  • 佛山小企业网站建设个人主页建站
  • 中考管理系统登录网站跨境电商哪个平台比较好
  • 早那么做商城网站中国疾控卫生应急服装
  • 房产网站制作网络营销专业可以干什么工作
  • 如何增加网站关键词库wordpress js图片