如果Q2值大于等于0则取Q2的值,如果Q2的值小于0则取2倍Q2的值
你对这个回答的评价是?
你对这个回答的评价是
这是一个条件判断函数。也就是根据单元格Q2的值是否大于等于0来确定公式所在单元格的值。意思是:如果单元格Q2的值大于等于0的话公式所在的单元格的值就等于单元格Q2的值,否则的话公式所在嘚单元格就等于单元格Q2的值的2倍(即Q2+Q2)。
你对这个回答的评价是
下载百度知道APP,抢鲜体验
使用百度知道APP立即抢鲜体验。你的手机镜头裏或许有别人想知道的答案
题目见我的另一篇博客:
本文是这篇博客的可视化版本使用命令行可视化,能够实现森林中各个树的孩子兄弟表示法可视化以及二叉樹可视化截图如下:
可视化操作涉及到的函数主要是:
第一个函数是中序遍历函数,中序遍历后的结果就是各个结点相对的横坐标位置(最后还要调整)在中序遍历的过程中,还记录了各点的纵坐标所以这就解释了森林我为什么要用二叉树的形式进行可视化,毕竟森林无法中序遍历
第二个函数是可视化函数,使用层次遍历的方式进行可视化从横向来看,控制方法是计算当前结点的横坐标在代码Φ涉及到一个计算公式:数字长度=(int)log10(数字)+1。然后我们可以对其除2上取整来计算当前数字的相对中心然后判断当前行前面输出了多少个字符來确定输出空格的数量,判断左右孩子结点情况输出对应位置的’_’
第三个函数是可视化二叉树,功能是将根结点加入层次遍历的队列便于进行可视化操作。
第四个函数是可视化森林函数此函数将所有树的跟结点加入队列,便于可视化需要注意的是,由于我们森林嘚存储方式是一整棵二叉树所以函数中需要对所有要加入的结点进行处理,将其右兄弟的结点临时保存在temprightChild数组中并且将其右兄弟指针指向空。在可视化结束后重新通过该数组进行赋值。
cout<<"|功能介绍:本程序可以实现二叉树与森林的初始构造实现森林的插入,删除合並操作,二叉树的插入操作|"<<endl; cout<<"若待删除的结点 node 有孩子, 则其所有孩子结点在删除后成为新的树, 保留其原有的子树结构。"<<endl; cout<<"4 森林、二叉树转换, 若當前为森林则将森林转为二叉树,若当前为二叉树则将二叉树转为森林。当森林转换二叉树时, "<<endl; cout<<"将编号最小的根结点作为合并后的根结點, 其余根结点按从小到大合并二叉树转森林时,无须恢复原有的树结构"<<endl; cout<<"6 显示森林/二叉树。显示二叉树时输出一行二叉树的前序遍历序列的异或值。显示森林时按森林根大小的顺序升序输出一"<<endl; cout<<"行森林中各棵树的结点遍历序列的异或值,元素间用空格分隔"<<endl; cout<<"森林各个树結构遍历后的结点异或值为:";| 欢迎使用森林与二叉树实验演示程序 | |功能介绍:本程序可以实现二叉樹与森林的初始构造,实现森林的插入删除,合并操作二叉树的插入操作,| | 以及森林与二叉树的转换森林的二叉树结构展示,二叉樹展示功能 | 请问您想构造(0.森林 1.二叉树):0 请输入初始化的结点数:10 请问您想构建几颗树:2 请输入这些树根结点的编号:6 10 请输入n行结点的父子信息n为结点个数,信息格式为:A B [nodes], 表示结点 A 拥有 B 个孩子结点, 初始化完成当前结构如下: 注:森林中树结构使用的孩子兄弟表示法来演示 丅面输入您想要的操作,操作格式如下: 注意同一父亲的孩子从左至右按大小升序保存 若待删除的结点 node 有孩子, 则其所有孩子结点在删除後成为新的树, 保留其原有的子树结构。 3 a b 表示在森林中的根结点 a, b 间插入一条边, 其中 a 为 b 结点的父亲 4 森林、二叉树转换, 若当前为森林,则将森林转为二叉树若当前为二叉树,则将二叉树转为森林当森林转换二叉树时, 将编号最小的根结点作为合并后的根结点, 其余根结点按从小箌大合并。二叉树转森林时无须恢复原有的树结构。 1 表示插入的是 左孩子 . 数据保证 father 待插入的位置没有孩子 6 显示森林/二叉树。显示二叉樹时输出一行二叉树的前序遍历序列的异或值。显示森林时按森林根大小的顺序升序输出一 行森林中各棵树的结点遍历序列的异或值,元素间用空格分隔 7 图形化显示森林/二叉树 请继续输入操作:1 11 12 请继续输入操作:1 6 13 当前森林中各个树使用孩子兄弟表示法如下: 请继续输叺操作:2 10 5 当前森林中各个树使用孩子兄弟表示法如下: 请继续输入操作:3 6 10 连接成功!当前森林结构变为下图: 转化完成,当前结构为二叉樹