List Leave

时间:2023-03-10 07:26:05
List Leave

本次作业是建立二叉树并输出叶结点

(1)首先是定义结点,包括左孩子,右孩子

typedef struct
{
int lch;//左孩子
int rch;//右孩子
}Node;

(2)建立二叉树

 cin>>N;
bool check[100]={false};
for(int i=0;i<N;i++)
{
cin>>x>>y;
if(x!='-')
{
t[i].lch=x-'0';//字符对应数字的ASCII码与0相减,转换成整数类型
check[t[i].lch]=true;
}
else {t[i].lch=-1;}

  定义bool类型数组,初始为false,若t[i].lch不为‘-’,则check[t[i].lch]赋值为true

输入左孩子,为字符型,x-‘-’与ASCII码0相减使其转化为整型,可作为check数组的下标

右孩子则是与左孩子相同操作

for(int i=;i<N;i++)
{
if(!check[i])
{
return i;//未出现过的数即为树的根节点
}
}

用check数组找出未出现的数,该数即为根节点

  queue<int>q;//建立队
q.push(x);//根节点所在下标入队

在遍历二叉树的函数中,是通过队先进先出的特点来对二叉树进行遍历

    if((t[temp].lch == -) && (t[temp].rch == -))

以上情况则为结点的左右孩子都为空,即为叶结点,可输出

若不为空,则用q.push()对结点进行入队操作

    if(t[temp].lch != -)//左结点不为空时,入队
q.push(t[temp].lch);
if(t[temp].rch != -)//右结点不为空时,入队
q.push(t[temp].rch);

本次作业题主要是上课看老师的讲解,课后再自己进行细化,最终得出可以提交成功的代码。

觉得自己有想法,但用代码实现的能力却有限,希望多加锻炼,以此获得更大的提高。

随机推荐

  1. mysql5.0手动升级8.0.15,并链接到navicat

    一.卸载老版本的mysql 1.1 在控制面板中删除即可 1.2 将老版本的mysql安装残留文件彻底删除 二.彻底删除mysql-注册表 2.1 开始->运行-> regedit 看看注 ...

  2. python3下获取主流浏览器和python的安装路径

    #coding=utf-8#python3下获取主流浏览器和python的安装路径#by dengpeiyou date:2018-07-09import winreg,os #取得浏览器的安装路径d ...

  3. sqlserver2012 数据库差异备份恢复 记录

    sqlserver2012恢复过程: 先恢复全备份,再恢复差异,注意:勾选NoRecovery选项. 恢复完成后,出现: Sqlserver数据库 一直显示“正在还原…” 的状态. 引用:http:/ ...

  4. Pytorch_01 Tensor,Autograd,构建网络

    Tensor Tensor是PyTorch中的重要数据结构,可认为是一个高维数组,Tensor与numpy的ndarrays类似,但Tensor可以使用GPU加速 import torch as t# ...

  5. View的相关原理(读书笔记)

    View的使用方法相关: 1.setContentView() 2.LayoutInflater.inflate() PS:本质上setContentView()方法最终也是通过LayoutInfla ...

  6. Java解法-两数相加(Add Two Numbers)

    问题  给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和. ...

  7. mac 环境搭建

    安装homebrew jdk 也可以官网下载 maven 官网下载tar.gz包 也在homebrew下安装git,java,mysql.

  8. vs2015下编译duilib的几个问题

    duilib下载地址在github 用vs2015打开,提示升级工程,确认后继续. 编译,UIGifAnim.cpp 323行报错 1>Control\UIGifAnim.cpp(324): e ...

  9. 提升lua代码效率

    local test = {} , do test[ i ] = {} end local t1 = os.clock( ) , do test[ ].mValue = end local t2 = ...

  10. angular.min.js:118 Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?

    1,错误如图所示 简单说下错误原因是:没有js没有注册进去. 解决方法: 1.看下index.html有没有引入你的js文件. 2.看下app.js有没有注册js,比如我这次就是这步没做好,合并代码时 ...