二叉树的序列化练习
来源:互联网 发布:创维电视软件 编辑:程序博客网 时间:2024/05/17 22:04
首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果遇到空节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点值不存在,当然你也可以用其他的特殊字符,“!”表示一个值的结束。如果遇到不为空的节点,假设节点值为3,就在str的末尾加上“3!”。现在请你实现树的先序序列化。
给定树的根结点root,请返回二叉树序列化后的字符串
采用先序遍历的非递归实现.注意,如果节点为空需要向栈中压入孔的TreeNode*;
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class TreeToString {public: string toString(TreeNode* root) { if(!root) return string{}; string res; stack<TreeNode*> sta; sta.push(root); TreeNode* emp=NULL; while(!sta.empty()) { TreeNode* temp=sta.top(); if(!temp) res+="#!"; else{ string str=to_string(temp->val)+'!'; res+=str; } sta.pop(); if(temp){ if(temp->right) sta.push(temp->right); else sta.push(emp); if(temp->left) sta.push(temp->left); else sta.push(emp); } } return res; }};
0 0
- 二叉树的序列化练习
- 递归二叉树的序列打印练习
- 数据结构练习---遍历序列与二叉树的复原
- 非递归二叉树的序列打印练习
- 二叉树的序列化
- 二叉树的序列化
- 二叉树的序列化
- 二叉树的序列化
- 二叉树的序列化
- 二叉树的序列化
- 二叉树的序列化
- 二叉树序列化
- 二叉树序列化
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- 序列化二叉树
- PHP ElasticSearch的使用
- Redis基础
- 传纸条(dp)
- Mysql(5.7)设置字符集为UTF-8
- 趣味取小数
- 二叉树的序列化练习
- 监督学习
- Xshell实现文件的上传与下载
- 函数及运算
- MP4学习(四)ts-mp4源码阅读(2)MP4的解析流程
- a+++b C语言记法分析中的“贪心法”
- 用寄存器建立工程模板无法下载现象及解决办法
- 正确使用奇数
- 使用git clone "https://..." 返回503错误