【刷题之路】二叉树先序序列化

原创 2016年05月31日 09:53:24

将一颗二叉树先序遍历并输出一个字符串,每个数字后加‘!’作为分隔,空节点记为‘#!’

class TreeToString {
public:
    string toString(TreeNode* root) {
        string res;
        string temp;
        stack<TreeNode*> p1;
        TreeNode* cur;
        p1.push(root);
        while(!p1.empty()){   //利用循环先序遍历二叉树
            cur=p1.top();
            p1.pop();
            if(cur==NULL){
                res+="#!"; 
                continue;
            }
            temp=str1(cur->val);  //整型转字符串,可以替换为sprintf函数,功能一样
            temp+='!';
            res+=temp;
            if(cur) p1.push(cur->right);  //即时左右孩子节点为空,依然押入,只有当当前节点为空时停止,与二叉树先序遍历稍有不同
            if(cur) p1.push(cur->left);
            else res+="#!"; 
        }
        return res;
    }
    string str1(int a){
        std::stringstream ss; //字符串流std ,将节点val变为字符串

        ss << a;
return  ss.str();
    }
};

版权声明:本文为博主原创文章,未经博主允许不得转载。

由先序与中序序列构造二叉树

  • 2013年11月19日 23:09
  • 1015B
  • 下载

vijos p1132 求二叉树的先序序列

  • 2014年05月06日 17:26
  • 431B
  • 下载

【递归】Vijos P1132 求二叉树的先序序列(NOIP2001普及组第三题)

题目链接:   https://vijos.org/p/1132 题目大意:   给定二叉树的中序和后序遍历,求该二叉树先序遍历。 题目思路:   【递归】   这题妥妥递归。   二叉树先序根左右,...

牛客网刷题之序列化二叉树

题目描述:解题思路:  首先我们得知道序列化是怎样的。二叉树序列化时,如果结点 不为空时,在转化val所得的字符之后添加一个’ , ‘作为分割如果是空节点则以 ‘#,‘ 代替。我们可以使用前序遍历,...

给出先序和中序序列,还原二叉树的规律方法

给出先序和中序序列,还原二叉树的规律方法

通过树的先序和中序遍历序列来构造二叉树

通过树的先序和中序遍历序列来构造二叉树

Java先序序列构造二叉树

BinaryTree.java package com.anjoyo.data_structures.tree; import java.util.Scanner; /** * 先序序列构造...

Java 通过先序中序序列生成二叉树

题目   二叉树的前序以及后续序列,以空格间隔每个元素,重构二叉树,最后输出二叉树的三种遍历方式的序列以验证。   输入:   1 2 3 4 5 6 7 8 9 10   3 2 5 4 1...

由先序和中序序列建立二叉树

已知某棵二叉树具有n(n>0)个不同的节点,其先序序列是a0a1a2....an-1,中序序列是b0b1b2...bn-1。 因为在先序遍历过程中,访问根节点后,紧跟着遍历左子树,最后再遍历右子树。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】二叉树先序序列化
举报原因:
原因补充:

(最多只允许输入30个字)