编程之美2: 二进制重建

编程之美2: 二进制重建

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

称号:

在队列中,队列给定二进制序列前导,这种二元结构。

前言:

a b d c e f

后序:

d b a e c f

使用递归实现例如以下:

#include<stdio.h>
#include<iostream>


using namespace std;

typedef struct tagNode{
        tagNode* left;
        tagNode* right;
        char value;
} Node;

void rebuildtree(char* pPreOrder, char* pInOrder, int len, Node** root)
{
        if(len <= 0) return;
        //1: find root's value and create root Node
        char chroot = *pPreOrder;
        Node* pNode = new Node();
        pNode->left = NULL;
        pNode->right = NULL;
        pNode->value = chroot;
        *root = pNode;

        if(len == 1) return;

        //2: find root's left child and find right child
        int i = 0;
        while(i < len)
        {
                if(*(pInOrder + i) == chroot) break;
                i ++;
        }

        if(i == len) return;

        //leftchild
        rebuildtree(pPreOrder+1, pInOrder, i, &((*root)->left));
        //rightchild
        rebuildtree(pPreOrder+i+1, pInOrder+i+1, len -i -1, &((*root)->right));
}


void printTree(Node* root)
{
        if(root == NULL) return;
        printTree(root->left);
        printTree(root->right);
        cout << root->value << ",";
}
int main()
{
        char p1[7] = "abdcef";
        char p2[7] = "dbaecf";
        Node* root = NULL;
        rebuildtree(p1, p2, 6, &root);
        //end print tree
        printTree(root);
		getchar();
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117422.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ztree简介

    Ztree简介介绍 zTree 是利用 JQuery 的核心代码 实现一套能完成大部分常用功能的 Tree 插件 兼容 IE FireFox Chrome 等浏览器 在一个页面内可同时生成多个 Tree 实例 支持 JSON 数据 支持一次性静态生成和 Ajax 异步加载两种方式 支持多种事件响应及反馈 支持 Tree 的节点移动 编辑 删除 支持任意更换皮肤 个性化图

    2025年11月1日
    3
  • CubieBoard 简单入门

    CubieBoard 简单入门大约一个月之前折腾的部分记录,当时没有完全完成,就着手其他事情了,这是存在LiveWriter中的草稿,先发出来吧,后来花了一段时间移植Qt,一直遇到了点问题,并没有完全跑通,后续估计也没有时间再继

    2022年7月4日
    23
  • js匿名函数和命名函数_javascript中的函数

    js匿名函数和命名函数_javascript中的函数匿名函数里的对象,跟定义匿名函数页面的上下文有关,而与调用匿名函数的页面无关。很拗口。举例说明://在某个“容器”页面functionshowWorkSpace(callback,h){varheight=500;callback(“map_workspace”,height);}//在该“容器”页面中的某个iframe页面parent.showWorkSpa

    2022年9月1日
    4
  • c++ sstream

    c++ sstreamsstream定义了三个类:istringstream、ostringstream和stringstream分别用来进行流的输入、输出和输入输出操作由于sstream使用string对象代替字符数组,避免缓冲区溢出的危险;其次,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。相比c库的数据类型转换,sstream更加安全、自动和直接。1.数据类型转换#inclu…

    2022年6月4日
    53
  • 申请并部署阿里云SSL免费证书详细流程[通俗易懂]

    申请并部署阿里云SSL免费证书详细流程[通俗易懂]1、申请阿里云SSL免费证书,依次如下图操作。注意:此处一直验证失败是因为用了CDN(很多找不到原因的问题都是因为使用了CDN),在百度云加速中再次解析一次即可。2、部署:阿里云服务器可直接部署,其他第三方服务器下载安装。(1)阿里云服务器部署。(2)第三方服务器下载安装,安装方法查看“下载”键左侧的“帮助”,本文中用的是PHPstudy8.0自带的安装方法。注意事项:一、服务器windows防火墙允许443端口;二、云服务器需要单独在控制面板设置允许443端

    2022年10月3日
    5
  • QCustomPlot 官方文档学习1

    QCustomPlot 官方文档学习1      用一些实例来作为QCustomPlot学习的指南,如果用QtCreater提升一个Widget,就能够通过 ui-&gt;customPlot或者其他的名字访问各个Widget;Youcancreateanewgraphintheplotvia customPlot-&gt;addGraph().Thenyouassignthegraphsome…

    2022年10月16日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号