1、排序二叉树「建议收藏」

1、排序二叉树「建议收藏」2.建立并中序遍历一个排序二叉树排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树输入:输入有一行,表示若干个要排序的数,输入0时停止输出二叉树的凹入表示和二叉树的中序遍历序列sample:input:567834891235677722570output:     12 …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

2.建立并中序遍历一个排序二叉树

排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树

输入:
输入有一行,表示若干个要排序的数,输入0时停止

输出
二叉树的凹入表示
和二叉树的中序遍历序列

sample:
input:
56 78 34 89 12 35 67 77 22 57 0

output:
        12
            22
    34
        35
56
            57
        67
            77
    78
        89

12 22 34 35 56 57 67 77 78 89

  测试输入关于“测试输入”的帮助 期待的输出关于“期待的输出”的帮助 时间限制关于“时间限制”的帮助 内存限制关于“内存限制”的帮助 额外进程关于“{$a} 个额外进程”的帮助
测试用例 1 以文本方式显示

  1. 42 168 35 101 270 125 79 259 263 165 6 246 182 62 192 296 243 28 37 0 ↵
以文本方式显示

  1.         6↵
  2.             28↵
  3.     35↵
  4.         37↵
  5. 42↵
  6.                 62↵
  7.             79↵
  8.         101↵
  9.             125↵
  10.                 165↵
  11.     168↵
  12.                     182↵
  13.                         192↵
  14.                             243↵
  15.                 246↵
  16.             259↵
  17.                 263↵
  18.         270↵
  19.             296↵
  20.  6 28 35 37 42 62 79 101 125 165 168 182 192 243 246 259 263 270 296↵
无限制 64M 0
测试用例 2 以文本方式显示

  1. 147 106 291 130 71 51 7 202 94 249 132 24 85 0 ↵
以文本方式显示

  1.                 7↵
  2.                     24↵
  3.             51↵
  4.         71↵
  5.                 85↵
  6.             94↵
  7.     106↵
  8.         130↵
  9.             132↵
  10. 147↵
  11.         202↵
  12.             249↵
  13.     291↵
  14.  7 24 51 71 85 94 106 130 132 147 202 249 291↵
无限制 64M

0

 

 

#include "stdio.h"
#include "stdlib.h"

typedef struct BiTNode{
    int data;
    struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;

BiTree Search(BiTree p, int key){
    if(key < p->data){
        if(p->lchild == NULL) return p;
        else return Search(p->lchild, key);
    }
    else{
        if(p->rchild == NULL) return p;
        else return Search(p->rchild, key);
    }
}

void Print(BiTree p, int step){
    if(p->lchild != NULL) Print(p->lchild, step+1);
    for(int i = 0; i < step; i++)
            printf("    ");
        printf("%d\n", p->data);
    if(p->rchild != NULL) Print(p->rchild, step+1);
}

void MidPrint(BiTree p){
    if(p->lchild != NULL) MidPrint(p->lchild);
    printf(" %d",p->data);
    if(p->rchild != NULL) MidPrint(p->rchild);
}

int main(int argc, char const *argv[])
{
    int key;
    BiTree root = NULL;
    scanf("%d", &key);
    root = (BiTree)malloc(sizeof(BiTNode));
    root->data = key;
    root->lchild = NULL;
    root->rchild = NULL;
    while(scanf("%d", &key) && key != 0){
        BiTree p = Search(root, key);
        if(key < p->data){
            p->lchild = (BiTree)malloc(sizeof(BiTNode));
            p->lchild->data = key;
            p->lchild->lchild = NULL;
            p->lchild->rchild = NULL;
        }
        else{
            p->rchild = (BiTree)malloc(sizeof(BiTNode));
            p->rchild->data = key;
            p->rchild->lchild = NULL;
            p->rchild->rchild = NULL;
        }
    }
    Print(root, 0);
    putchar('\n');
    MidPrint(root);
    putchar('\n');
    return 0;
}

 

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

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

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


相关推荐

  • CentOS7网络配置-静态IP设置

    CentOS7网络配置-静态IP设置安装完VM后,需要进行网络配置。第一个目标为可以进行SSH连接,可以从本机到VM进行文件传送。故,VM中centos需要可以独立访问外网!【1】修改网络配置文件安装完CentOS7时,网络是通的。此时网络配置如下:网络配置文件路径:/etc/sysconfig/network-scripts/ifcfg-enp0s3其中“enp03”是你的网卡名称。TYPE="Ethernet"PROXY_ME

    2022年6月9日
    39
  • 正版office2007标准版

    正版office2007标准版正版office2007标准版正版office2007标准版,供应2007office标准版,正版office2007询价,正版office2007价格 胡辉:13590176235深圳office2007 中文家庭与学生版彩包:深圳office200

    2022年7月19日
    18
  • 免备案空间推荐_美国免备案空间不限内容

    免备案空间推荐_美国免备案空间不限内容“空间”对于搭建网站来说是比较重要的,然而国内空间访问有备案这个限制。最近试用一些不错的免费免备案空间,今天整理分享出来

    2022年10月21日
    2
  • rsync远程同步文件_ssh远程登录

    rsync远程同步文件_ssh远程登录一、简介二、配置项三、远程同步测试免交互配置:四、实时同步1、在客户机上安装notify2、编写监控脚本五、rsync批量快速删除大量文件一、简介一款快速增量备份工具RemoteSync,远程同步支持本地复制,或者与其他SSH、rsync主机同步它名称里面的r指的是remote,rsync其实就是”远程同步”(remotesync)的意思。与其他文件传输工具(如FTP或scp)不同,rsync的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改.

    2022年10月13日
    2
  • C++ Opencv imfill 孔洞填充函数的实现(学习笔记)[通俗易懂]

    C++ Opencv imfill 孔洞填充函数的实现(学习笔记)[通俗易懂]C++Opencvimfill孔洞填充函数的实现函数实现的中心思想二值图寻找连通域的关键种子点的确定连通域的寻找过程条件设定最后赋值话不多说直接上函数代码主函数代码代码框截图实例图片运行结果函数实现的中心思想二值图此程序针对于二值图,寻找二值图中像素值为0的连通域,将所有连通域的像素点分别保存下来,将符合条件的连通域的像素值置为255;寻找连通域的关键针对填洞功能的实现,也就…

    2025年11月2日
    4
  • 华硕怎么安装linux系统教程,华硕笔记本系统如何安装win10和linux 双系统[通俗易懂]

    华硕怎么安装linux系统教程,华硕笔记本系统如何安装win10和linux 双系统[通俗易懂]稍微了整理了一下win10和linux双系统的安装教程,第一个选项是进入U盘linuxlive,等等)第一点设置boot挂载点。设置BIOS。然后点击试用用UBUNTU,但是windows上面的数据又删除不得,使用Ultraiso把LINUXUBUNTU14.X这个iso文件【写入硬盘影像】到U盘。第三个自己看,去正规的网站现在,6设置完毕,我这里设置了5GB其余的空间我全部分给/us…

    2022年7月24日
    7

发表回复

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

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