技术标签: 二叉树
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。
输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。
输出为一个整数,即该二叉树的高度。
9
ABDFGHIEC
FDHGIBEAC
5
输入:前序遍历,中序遍历
1、寻找树的root,前序遍历的第一节点G就是root。观察发现,上面的过程是递归的。先找到当前树的根节点,然后划分为左子树,右子树,然后进入左子树重复上面的过程,然后进入右子树重复上面的过程。最后就可以还原一棵树了:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node{
char elem;
struct node *left,*right;
};
typedef struct node * Tree;
char in[55],pre[55];
Tree findTree(char in[],char pre[],int length){
if(length==0) return NULL;
Tree head=(Tree)malloc(sizeof(struct node));
head->elem=pre[0];
int i=0;
for(i=0;i<length;i++){
if(in[i]==pre[0]) break;
}
head->left=findTree(in,pre+1,i);
head->right=findTree(in+i+1,pre+i+1,length-i-1);
return head;
}
int length(Tree head){
if(head==NULL) return 0;
int l=length(head->left);
int r=length(head->right);
return l>r?l+1:r+1;
}
int main(){
int n;
scanf("%d",&n);
scanf("%s%s",pre,in);
Tree head=(Tree)malloc(sizeof(struct node));
head=findTree(in,pre,n);
printf("%d\n",length(head));
return 0;
}
从网上搞了一个基于osip 库的 SIP 协议的简单的 UAC 代理客户端和 UAS 代理服务器端,并进行了编译连接,代码整理后如下: ----------- UAC 代理客户端的代码整理 ---------------/** * 一个使用了 osip 和 eXosip 库的 UAC 代理客户端的演示程序 * * - 只是简单的演示了使用了 osip 和 ..._uas_do_inquiry
学习这么长时间的数据分析,却没有好好的做个总结,前段时间面试的时候,有面试官提问,如何做数据清洗。但由于平时缺少总结,回答的不是很好。于是博主决定好好地学习总结一番。数据清洗主要针对一下几类脏数据:1)缺失值2)异常值3)重复值缺失值一、数据为什么会缺失数据缺失主要分为两大类:有意的:有些数据特征在设计的时候考虑会有缺失值的情况,而缺失数据往往不代表真的缺失,而是另有含义。比如...
1.当控件获取鼠标焦点时,显示如下:2.当控件失去鼠标焦点时,显示如下:3.这种效果有点类似于QQ登陆界面,大家没事的时候可以试一试,与QQ登陆界面不同点在于:这个控件获取鼠标焦点时,控件里面的那个按钮也变蓝色,但是腾讯QQ是不变色的。4.RzButtonEdit具体使用如下:属性:ButtonKind --》用于选择控件里面那个按钮的形状,可以选择很多。Fla_buttonedit
红黑树的性质(牢记) 1、每个结点的颜色只能是红色或黑色。 2、根结点必须是黑色的。 3、每个叶子结点都带有两个空的黑色结点(被称为黑哨兵null),如果一个结点n的只有一个左孩子,那么n的右孩子是一个黑哨兵;如果结点n只有一个右孩子,那么n的左孩子是一个黑哨兵。 4、如果一个结点是红的,则它的两个儿子都是黑的。也就是说在一条路径上不能出现相邻的两个红色结点。 5、从任何一个结点到其子孙叶
from http://blog.csdn.net/zhrzhl/article/details/12038583oracle expdp导出指定表的部分数据指定部分表数据导出[oracle@oratest ~]$ expdp oracle/oracle@oratest dumpfile=20130826.dmp directory=dpdump tables=_oracle expdp 某个表的某些记录
https://youth.blog.csdn.net/article/details/78318932?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1.control_信号量sem_init,sem_wait,sem_post
安装VirtualBox 和 vagrant 1、下载virtualbox包https://www.virtualbox.org/wiki/Downloads 2、下载vagrant 包 https://www.vagrantup.com/downloads.html 3、以上两个工具直接安装(vagrant可以使用终端命令直接安装) 4、在终端输入vagrant测试是否可以使用(这是一个虚拟机管理工具) 5、下载镜像 http://cloud.centos.org/centos/7/v._virtualbox.box
目录前言库的安装1、cfg2、pygame小游戏1-贪吃蛇代码效果图前言本文分为库的安装和游戏制作2部分,代码中所需要使用的所有库的命令都会放在第一部分,如果运行缺库,大家去第一部分找对应的命令库的安装1、cfg命令pip install cfg22、pygame命令pip install pygame小游戏1-贪吃蛇此处引用博主大力出奇迹、博客Python贪吃蛇 (完整代码+详细注释+粘贴即食),仅供学习使用具体代码如下,可._树莓派有没有练打字的游戏
avue自定义操作栏需要定义一个插槽,并且将slot属性设置为menu通过menuWidth属性可以改变操作栏的宽度<avue-crud :data="data" :option="option"> //自定义插槽 <template slot-scope="{type,size}" slot="menu"> <el-button icon="el-icon-check" :size="size" :type="type">自定义菜单按钮</_avxe this.option.menuwidth
今天,开发需要申请一个账号:[email protected] 。连接时报了以下错误:Warning: Using a password on the command line interface can be insecure.ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.84.87' (111)遇到连接失败,首先就..._3306端口不通
print函数句法:print(value,…,sep=’ ‘,end=’\n’)1、print(value)句法这里的value,如果输入一个或多个,则打印一个或多个print('hello')print('apple','banana','hello')_print value有什么用
php-src/sapi/fpm/fpm/fpm.c关于fpm初始化关键代码 0 > fpm_php_init_main() || 0 > fpm_stdio_init_main() || 0 > fpm_conf_init_main(test_conf, force_daemon) || 0 &g..._有php-fpm 的源