algorithm - 使用中序遍历的二叉树序列化和反序列化
问题描述
如果给定的二叉树是二叉搜索树,我们可以通过存储前序或后序遍历来存储它。在二叉搜索树的情况下,仅前序或后序遍历就足以存储结构信息。
问题
- 二叉树的序列化和反序列化不能使用有序遍历吗?如果是,为什么?
- 二叉树和 BST 序列化有什么区别?上述说法并不清楚这种区别
解决方案
BST 的按顺序遍历会生成排序的数据列表,而不管树的外观如何。
相反,给定一个通过前序遍历产生的列表,可以重构 BST:
第一个元素是根。
按根的值拆分其余部分。BST的S保证分裂点存在,第一/第二切片分别包含左/右子树。
递归地将该过程应用于第一个和第二个切片。
这个过程在很大程度上依赖于 BST 的S属性。任意二叉树没有分裂点。
推荐阅读
- solr - 在 solr 中添加 CustomSimilarity 类
- c# - 在 Remove-Migration 和 Update-Database 之后删除 .cs 迁移文件是否安全
- listview - Flutter中如何根据视口高度约束ListView
- java - Swing - 调整大小时 GridBagLayout 中的 JScollArea 折叠
- node.js - 正则表达式在 match() 中返回 'Cannot read property '0' of null'
- c# - C# VMWare PowerCli 6.0 从文件夹启动-VM
- javascript - D3 移动时刷机滞后
- java - Double/ Long 到 BigInteger
- algorithm - 使用最少的裁切次数裁切纸张
- ssl - javax.net.ssl.SSLHandshakeException:没有可协商的密码套件(致命错误:80:包装应用程序数据的问题)