Python3实现二叉树的序列化和反序列化
2018-11-16 17:41
423 查看
Python3实现二叉树的序列化和反序列化
python
# !/usr/bin/env python # -*- coding: utf-8 -*- """ @Author: P♂boy @License: (C) Copyright 2013-2017, Node Supply Chain Manager Corporation Limited. @Contact: 17647361832@163.com @Software: Pycharm @File: Tr.py @Time: 2018/11/16 11:36 @Desc: """ class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None class Solution: def serialize(self, root): # write code here tree, ch = [root], [] while len(tree) > 0: temp = tree.pop(0) if temp is None: ch.append('# ') else: ch.append(str(temp.val) + ' ') tree.append(temp.left) tree.append(temp.right) return ''.join(ch) def deserialize(self, data): # write code here s1, i = data.split(), 0 # 用空格作为分隔符 if s1[i] == '#': return None root = TreeNode(int(s1[i])) tree = [root] while len(tree) > 0: te = tree.pop(0) i += 1 if s1[i] != '#': k = TreeNode(int(s1[i])) te.left = k tree.append(k) i += 1 if s1[i] != '#': k = TreeNode(int(s1[i])) te.right = k tree.append(k) return root T = TreeNode(8) T.left = TreeNode(9) T.right = TreeNode(10) T.left.left = TreeNode(20) T.left.right = TreeNode(20) print(Solution().serialize(T))阅读更多
相关文章推荐
- 数据结构与算法分析笔记与总结(java实现)--二叉树4:二叉树的序列化和反序列化练习题
- 请实现两个函数,分别用来序列化和反序列化二叉树
- phpserialize ,PHP 中变量序列化和反序列化在 Python 中的实现
- 二叉树的序列化和反序列化java借助队列实现
- phpserialize ,PHP 中变量序列化和反序列化在 Python 中的实现
- 二叉树的序列化和反序列化实现(C++)
- 请实现两个函数,分别用来序列化和反序列化二叉树
- 二叉树的序列化和反序列化
- Python学习心得(五) random生成验证码、MD5加密、pickle与json的序列化和反序列化
- javascript实现json的序列化和反序列化功能
- 构造BufferWriter和BufferReader实现高效的对象序列化和反序列化
- 小白学数据结构——二、树与堆(基本概念及二叉树、二叉堆的python实现)
- 支持vector,map,list<map>序列化,反序列化实现
- Python实现: 常用排序算法 & 二叉树的遍历算法
- 【二叉树】二叉树序列化和反序列化
- Python:序列化二叉树
- python实现二叉树,前序遍历,中序遍历,后续遍历
- python实现二叉树以及二叉树的遍历--1(面向对象的方法实现)
- Python实现二叉树及遍历方法
- python类库32[序列化和反序列化之pickle]