博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
牛客OJ:序列化二叉树
阅读量:4059 次
发布时间:2019-05-25

本文共 1248 字,大约阅读时间需要 4 分钟。

真是醉了,节点终止是‘#’不是‘$’,坑死我了。。。一直爆栈。

#include
using namespace std;struct TreeNode{ int val; struct TreeNode* left; struct TreeNode* right; TreeNode(int x): val(x), left(NULL), right(NULL){}};void putit(vector
& v,int val){ stack
s; while(val > 0){ s.push(val%10); val/=10; } while(!s.empty()){ v.push_back(s.top() + '0'); s.pop(); } v.push_back(',');}void todoit(vector
& v,TreeNode* p){ if( p == NULL){ v.push_back('#'); v.push_back(','); return ; } putit(v,p->val); todoit(v,p->left); todoit(v,p->right);}char* Serialize(TreeNode* root){ vector
v; todoit(v,root); int L = v.size(); char* ans = new char[L]; for(int i=0;i
left = doit(str,loc); p->right = doit(str,loc); return p;}TreeNode* Deserialize(char* str){ if(str == NULL) return NULL; int loc = 0; return doit(str,loc);}void print(TreeNode* p){ if(p == NULL) return; printf("%d ",p->val); print(p->left); print(p->right);}int main(){ //char input[] = "10,20,40,#,#,#,30,50,#,#,60,#,#"; char input[] = ""; TreeNode* t = Deserialize(input); print(t); printf("\n"); printf("<%s>\n",Serialize(t)); return 0;}

转载地址:http://pfwji.baihongyu.com/

你可能感兴趣的文章
【数据结构周周练】013 利用栈和非递归算法求二叉树的高
查看>>
【数据结构周周练】014 利用栈和非递归算法求链式存储的二叉树是否为完全二叉树
查看>>
【数据结构周周练】015 利用递归算法创建链式存储的二叉树并转换左右孩子结点
查看>>
【数据结构周周练】016 利用递归算法及孩子兄弟表示法创建树、遍历树并求树的深度
查看>>
【数据结构周周练】017 利用递归算法及孩子兄弟表示法创建森林、遍历森林并求森林的叶子结点个数
查看>>
【数据结构必备基本知识】数据结构常用预定义常量、类型及头文件
查看>>
【数据结构周周练】018 利用递归算法及中序遍历将二叉树线索化并遍历
查看>>
【数据结构周周练】019 利用递归算法创建二叉排序树并遍历
查看>>
【数据结构周周练】020 二叉排序树的排序与迭代查找
查看>>
【数据结构周周练】035 利用递归判断一棵二叉树是否为二叉排序树
查看>>
【数据结构周周练】021 求某一个数据在二叉排序树中的层数
查看>>
【数据结构周周练】022 从大到小输出二叉排序树中小于某个值的所有结点编号及数据
查看>>
【数据结构必备基础知识】之图的基本概念详解
查看>>
【数据结构必备基本知识】图的存储结构(邻接矩阵、邻接表、十字链表、邻接多重表)详解
查看>>
【数据结构周周练】023 将图的邻接表表示转化为邻接矩阵表示的算法
查看>>
【数据结构周周练】024 图的经典遍历算法之深度优先搜索、广度优先搜素
查看>>
【数据结构周周练】025 查找算法详解及顺序查找算法实现
查看>>
【数据结构周周练】026 折半查找算法及与顺序查找算法对比分析
查看>>
【数据结构周周练】027 图的基本概念及存储经典习题
查看>>
【数据结构周周练】028 图的存储及遍历经典习题
查看>>