第十一周--二叉树的构造(2)

如何在项目中集成bpmn-process-designer 文章目录一、bpmn-process-designer是什么?二、使用步骤1.将下面地址的代码下载到本地2.替换dependencies和devDependencies3.拷贝package目录4.在main.js引入代码5.拷贝src5.拷贝App.vue代码注意事项 一、bpmn-process-designer是什么? bpmn-process-designer是一个基于 bpmn.js,Vue 2.x 和 ElementUI 开发的流程设计器(前端部分),支持监听器,扩展属性,表单等配置,可自由扩展 阅读详情
/*
 *Copyright (c) 2015 烟台大学计算机与控制工程学院
 *All right reserved.
 *标题:数据结构实践——二叉树的构造
 *作者:杨珺
 *date:2015年11月9日
 *版本:V1.0.1
 *操作系统:XP
 *运行环境:VC6.0
 *问题描述:由顺序存储结构转为二叉链存储结构
*/


btreee.h:

#ifndef BTREEE_H_INCLUDED
#define BTREEE_H_INCLUDED

#define MaxSize 100
typedef char ElemType;
typedef struct node
{
    ElemType data;              //数据元素
    struct node *lchild;        //指向左孩子
    struct node *rchild;        //指向右孩子
} BTNode;
void CreateBTNode(BTNode *&b,char *str);        //由str串创建二叉链
BTNode *FindNode(BTNode *b,ElemType x);     //返回data域为x的节点指针
BTNode *LchildNode(BTNode *p);  //返回*p节点的左孩子节点指针
BTNode *RchildNode(BTNode *p);  //返回*p节点的右孩子节点指针
int BTNodeDepth(BTNode *b); //求二叉树b的深度
void DispBTNode(BTNode *b); //以括号表示法输出二叉树
void DestroyBTNode(BTNode *&b);  //销毁二叉树



#endif // BTREEE_H_INCLUDED


btreee.cpp:

#include <stdio.h>
#include <malloc.h>
#include "btreee.h"

void CreateBTNode(BTNode *&b,char *str)     //由str串创建二叉链
{
    BTNode *St[MaxSize],*p=NULL;
    int top=-1,k,j=0;
    char ch;
    b=NULL;             //建立的二叉树初始时为空
    ch=str[j];
    while (ch!='\0')    //str未扫描完时循环
    {
        switch(ch)
        {
        case '(':
            top++;
            St[top]=p;
            k=1;
            break;      //为左节点
        case ')':
            top--;
            break;
        case ',':
            k=2;
            break;                          //为右节点
        default:
            p=(BTNode *)malloc(sizeof(BTNode));
            p->data=ch;
            p->lchild=p->rchild=NULL;
            if (b==NULL)                    //p指向二叉树的根节点
                b=p;
            else                            //已建立二叉树根节点
            {
                switch(k)
                {
                case 1:
                    St[top]->lchild=p;
                    break;
                case 2:
                    St[top]->rchild=p;
                    break;
                }
            }
        }
        j++;
        ch=str[j];
    }
}
BTNode *FindNode(BTNode *b,ElemType x)  //返回data域为x的节点指针
{
    BTNode *p;
    if (b==NULL)
        return NULL;
    else if (b->data==x)
        return b;
    else
    {
        p=FindNode(b->lchild,x);
        if (p!=NULL)
            return p;
        else
            return FindNode(b->rchild,x);
    }
}
BTNode *LchildNode(BTNode *p)   //返回*p节点的左孩子节点指针
{
    return p->lchild;
}
BTNode *RchildNode(BTNode *p)   //返回*p节点的右孩子节点指针
{
    return p->rchild;
}
int BTNodeDepth(BTNode *b)  //求二叉树b的深度
{
    int lchilddep,rchilddep;
    if (b==NULL)
        return(0);                          //空树的高度为0
    else
    {
        lchilddep=BTNodeDepth(b->lchild);   //求左子树的高度为lchilddep
        rchilddep=BTNodeDepth(b->rchild);   //求右子树的高度为rchilddep
        return (lchilddep>rchilddep)? (lchilddep+1):(rchilddep+1);
    }
}
void DispBTNode(BTNode *b)  //以括号表示法输出二叉树
{
    if (b!=NULL)
    {
        printf("%c",b->data);
        if (b->lchild!=NULL || b->rchild!=NULL)
        {
            printf("(");
            DispBTNode(b->lchild);
            if (b->rchild!=NULL) printf(",");
            DispBTNode(b->rchild);
            printf(")");
        }
    }
}
void DestroyBTNode(BTNode *&b)   //销毁二叉树
{
    if (b!=NULL)
    {
        DestroyBTNode(b->lchild);
        DestroyBTNode(b->rchild);
        free(b);
    }
}


main.cpp:

#include <stdio.h>
#include <malloc.h>
#include "btreee.h"
#define N 30
typedef ElemType SqBTree[N];
BTNode *trans(SqBTree a,int i)
{
    BTNode *b;
    if (i>N)
        return(NULL);
    if (a[i]=='#')
        return(NULL);           //当节点不存在时返回NULL
    b=(BTNode *)malloc(sizeof(BTNode)); //创建根节点
    b->data=a[i];
    b->lchild=trans(a,2*i);                 //递归创建左子树
    b->rchild=trans(a,2*i+1);               //递归创建右子树
    return(b);                              //返回根节点
}
int main()
{
    BTNode *b;
    ElemType s[]="0ABCD#EF#G####################";
    b=trans(s,1);
    printf("b:");
    DispBTNode(b);
    printf("\n");
    return 0;
}


运行结果:

 

 

esp32-C3固件烧录用户手册 温馨提示:1.esp32-C3 BOOT脚为GPIO9,需要从芯片小板中焊接引出2.芯片小板中已经预留了所有烧录相关的引脚,大家可以按需焊接引线3.程序下载完,使用串口查看log时,需要使用220v供电使用(请务必准守用电安全)。原因:由于插座中包含继电器,计量计等耗电设备,所以usb转串口提供的3.3V电压和电流可能会出现供电不足,表现为usb转串口与电脑连接断断续续,导致无法查看log。 阅读详情

相关推荐

告别ROS1!在Ubuntu 22.04上为VINS-Fusion适配ROS2 Humble的完整踩坑记录

本文详细记录了在Ubuntu 22.04上将VINS-Fusion从ROS1迁移到ROS2 Humble的完整过程,包括环境搭建、依赖管理、核心代码适配及性能优化。通过实战案例和调试技巧,帮助开发者高效解决迁移过程中的常见问题,提升系统稳定性和性能。

weixin_42628688的博客 281

第十一周 项目1-2 二叉树的构造

/* 文件名称:main.cpp 作者 :王超 完成日期:2015年11月9日 问题描述:二叉树的构造 */ #include #include #include "btree.h" int main() { ElemType pre[]="ABDGCEF",in[]="DGBAECF"; BTNode *b1

Esther1012的博客 694

欧姆龙PLC EIP通讯配置方法

欧姆龙EIP通讯配置方法

weixin_59671695的博客 6137

第十一周项目2二叉树构造

问题代码: /*问题及代码 *Copyright(c)2016,烟台大学计算机学院 *All right reserved. *文件名称:二叉树层次遍历的算法.cpp *作者:李玲 *完成日期;2016年11月10日 *版本号;v1.0 *问题描述:由先序序列和中序序列构造二叉树 由中序序列和后序序列构造二叉树 *输入描述:各个序

JYHliling的博客 745

用STM32L552驱动AD9102:一个硬件工程师的实战避坑指南(附完整代码)

本文详细介绍了如何使用STM32L552微控制器驱动AD9102任意波形发生器芯片,从硬件设计到波形生成的完整实战指南。内容包括电源架构、时钟电路设计、输出调理电路等关键硬件设计要点,以及软件驱动架构、波形存储优化和典型波形生成实例。通过实战经验分享,帮助硬件工程师避开常见设计陷阱,提升开发效率。

weixin_30889885的博客 333

刚体转动欧拉方程:从理论到卫星姿态控制的实践

刚体转动欧拉方程是描述刚体旋转运动的基本动力学方程,在卫星姿态控制、机器人学、航空航天等领域有着广泛应用。本文将详细讲解欧拉方程的物理概念、数学推导、数值计算方法,并重点分析其在卫星姿态控制系统中的具体应用。

ScilogyHunter的博客 642

第十一周项目2二叉树构造算法的验证

问题及描述: /*  *Copyright(c++)2015,烟台大学计算机与控制工程学院  *All rights reserved,  *文件名称:tree.cpp  *作    者:程梦莹  *完成日期:2015年11月9日  *版本号:v1.0  *问题描述:由先序序列和中序序列构造二叉树                       定理:任何n(n≥0)个不

cmy0106的博客 521

华为OD干了两个月,还是跑了

​本人工作了快13年,base南京。2024年2月份由于公司业务变动第一次拿到了公司发的大礼包,同时也面临着失业的问题,我对自己的技术还是很有信心的,但是,找了大概有一个多月时间,发现心意的工作的确不太好找,当然收到挺多家offer,就是薪资不太满意,外包也一直不想去,不过说实话外包给的薪资普遍要比自研的单位要高一些,最后为了钱还是进华为(既然选择外包那就选择好一些的吧),毕竟中年老男人工作不能断太久。

啊渊的专栏 1万+

第十一周项目2—二叉树的构造

问题及代码 *Copyright(c)2016,烟台大学计算机学院 *All right reserved. *文件名称:二叉树的构造.cpp *作者:郗传秀 *完成日期;2015年11月9日 *版本号;v1.0 *问题描述:由先序序列和中序序列构造二叉树 由中序序列和后序序列构造二叉树 *输入描述:各个序列元素排列 *程序输出:二叉树

DSCCX的博客 397

26、特洛伊木马:威胁与防范

本文详细介绍了多种常见的特洛伊木马,包括RegForm、ProMail和远程访问特洛伊木马(RATs),并分析了其工作原理与危害。重点讲解了著名RATs如Back Orifice、SubSeven和The Thing的技术特点,揭示了黑客编写特洛伊木马的常用语言与方法。同时,提供了有效的防范策略,如谨慎获取软件、使用回滚程序、杀毒软件、防火墙及反特洛伊木马程序,并通过流程图展示了防御机制。旨在帮助用户识别威胁并加强系统安全防护。

e3f4g5的博客 88

北京大学MuMo多模态肿瘤分类模型复现与迁移学习

本项目复现了北京大学MuMo多模态肿瘤分类模型,并针对特定医学影像数据集进行迁移学习。MuMo模型通过整合CT、MRI、PET等多模态医学影像数据,显著提升了肿瘤分类准确性。项目内容包括环境配置(Python 3.8+、PyTorch 1.9+)、数据预处理(DICOM/NIfTI格式处理、强度归一化)、多模态数据集类实现,以及训练验证测试集划分。关键特点是采用MONAI医学影像处理库,实现三维医学影像的标准化预处理流程,并支持多种模态数据的并行加载与联合训练,为后续模型复现和迁移学习奠定基础。

max500600的博客 1241

第十一周 项目1-2 二叉树的构造

/* 文件名称:main.cpp 作者 :孙彩虹 完成日期:2015年11月27日 问题描述:实现二叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的二叉树进行测试。 */   1).由先序序列和中序序列构造二叉树 部分: #include #include #incl

balabala0322的博客 396

PCL ——LevenbergMarquardt非线性最小二乘法拟合圆柱(C++详细过程版)

使用C++详细过程版实现的LevenbergMarquardt非线性最小二乘法拟合圆柱

点云侠的博客 607

第十一周实践项目1(2)--二叉树的构造

代码: 1.(btreee.h见

TonyABu的博客 570

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

第十一周项目1(2)二叉树构造算法

/*问题及代码   *Copyright(c)2015,烟台大学计算机学院   *All right reserved.   *文件名称:二叉树的构造.cpp   *作者:邹晓琳  *完成日期;2015年11月5日   *版本号;v1.0   *问题描述:由先序序列和中序序列构造二叉树              由中序序列和后序序列构造二叉树      *输入描述:各个序列元素

zxl2016525的博客 492

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

第十一周 项目一【验证算法 2 二叉树构造算法】

*版本号;v1.0 *问题描述:由先序序列和中序序列构造二叉树 由中序序列和后序序列构造二叉树 *输入描述:各个序列元素排列 *程序输出:二叉树的构造 / // btree.h #define MaxSize 100 typedef char ElemType; typedef struct node { ElemTy

sdlixiao6的博客 422

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

第十一周项目2 二叉树构造算法--中序序列和后序序列构造二叉树

/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:cengcibianli.cpp *作者:朱希康 *完成日期:2015年11月20日 *版本号:vc++6.0 * *问题描述:二叉树构造 *输入描述:无 *程序输出:二叉树 */ #ifndef BTREE_H_INCLUDED #define BT

zxk201458506144的博客 616

第十一周项目一(2)二叉树构造

问题及代码: *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:二叉树的构造.cpp *作者:张冰 *完成日期;2016年11月10日 *版本号;v1.0 *问题描述:由先序序列和中序序列构造二叉树 由中序序列和后序序列构造二叉树 *输入描述:各个序列元素排列 *

qq_1562zb的博客 420

第十一周项目一 (2)二叉树的构造

/* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: btree.cpp,main.cpp,btree.h * 作者:巩凯强 * 完成日期:2015年11月9日 * 版本号:codeblocks * * 问题描述: 由先序序列和中序序列构造二叉树 * 输入描述: 无 * 程序输出: 见运行

巩凯强的博客 485

第十一周项目1-(2)二叉树构造算法的验证

问题及代码: /* Copyright (c)2016,烟台大学计算机与控制工程学院 All rights reserved. 文件名称:ccc.cpp 作 者:陈梦雪 完成日期:2016年11月17日 版 本 号:v1.0 问题描述:实现二叉树的二叉树构造算法的验证,并测试数据。 输入描述:无 程序输出:测试数据 */ 头文件及功能函数见【二叉树算法库】 1)由先序序列和中序序列构造

Parislun的博客 511

第十一周项目1——二叉树算法验证(2)二叉树构造算法验证

/*     * Copyright (c)2016,烟台大学计算机与控制工程学院     * All rights reserved.     * 文件名称:项目1.cpp     * 作    者:梁凯    * 完成日期:2016年11月8日     * 版 本 号:v1.0      *问题描述:实现二叉树的二叉树构造算法的验证,并测试数据  *输入描述:无     *程

QQ12555252014的博客 337

第十一周项目1(2)二叉树构造算法的验证

问题描述及代码: #ifndef BTREE_H_INCLUDED #define BTREE_H_INCLUDED /* *烟台大学计控学院 *作 者:王力源 *完成日期:2016年11月10日 *问题描述:任何n(n>0)个不同节点的二叉树,都可由它的中序序列和后序序列唯一地确定。 */ #endif // BTREE_H_INCLUDED(1)btree.h #

wly16885885的博客 301

第十一周项目2 二叉树构造算法--先序序列和中序序列构造算法

/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:cengcibianli.cpp *作者:朱希康 *完成日期:2015年11月20日 *版本号:vc++6.0 * *问题描述:二叉树构造 *输入描述:无 *程序输出:二叉树 */ #ifndef BTREE_H_INCLUDED #define BT

zxk201458506144的博客 494

第十一周项目1-验证算法(2)二叉树构造算法的验证

问题及代码:

噜噜 650

第十一周项目(2):验证算法——二叉树构造算法的验证

问题及代码: btree.h /* *烟台大学计算机与控制工程学院 *作 者:杨宁 *完成日期:2015年11月9日 *问题描述:实现二叉树构造算法的验证 */ #ifndef BTREE_H_INCLUDED #define BTREE_H_INCLUDED #define MaxSize 100 typedef char ElemType; typedef

yn2333的博客 401

第十一周项目2-用二叉树构造算法的验证

问题及代码: /* * Copyright (c)2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:222.cpp * 作 者:张相如 * 完成日期:2016年11月10日 * 版 本 号:v1.0 *问题描述:用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,

JaedRurr的博客 586
上一篇: 第十一周--二叉树的构造(1)
下一篇: 第十一周--线索化二叉树(中序)
杨珺
博客等级 码龄11年 31粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值