zoukankan      html  css  js  c++  java
  • 树结构练习——排序二叉树的中序遍历(二叉搜索树)

    树结构练习——排序二叉树的中序遍历

    Time Limit: 1000MS Memory limit: 65536K

    题目描述

    在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序 遍历的结果。
     

    输入

    输入包含多组数据,每组数据格式如下。
    第一行包含一个整数n,为关键值的个数,关键值用整数表示。(n<=1000)
    第二行包含n个整数,保证每个整数在int范围之内。

    输出

    为给定的数据建立排序二叉树,并输出其中序遍历结果,每个输出占一行。
     

    示例输入

    1
    2
    2
    1 20

    示例输出

    2
    1 20

    #include <stdio.h>
    #include <stdlib.h>
    typedef struct node
    {
        int data;
        struct node *lchild;
        struct node *rchild;
    }Tree;
    int i, n, key, cnt = 0;
    Tree *Insert(Tree *t , int key)
    {
        if(t == NULL)
        {
            Tree *p;
            p = (Tree *)malloc(sizeof(Tree));
            p->data = key;
            p->lchild = NULL;
            p->rchild = NULL;
            t = p;
        }
        else
        {
            if(key < t->data)
                t->lchild = Insert(t->lchild, key);
            else
                t->rchild = Insert(t->rchild, key);
        }
        return t;
    }
    
    void InOrder(Tree *t)
    {
        if(t!=NULL)
        {
            InOrder(t->lchild);
    
            cnt++;
            if(cnt==n)
                 printf("%d
    ", t->data);
            else
                printf("%d ", t->data);
    
            InOrder(t->rchild);
        }
    }
    
    int main()
    {
        while(~scanf("%d", &n))
        {
            Tree * t = NULL;
            cnt = 0;
            for(i=0; i<n; i++)
            {
                scanf("%d", &key);
                t = Insert(t, key);
            }
            InOrder(t);
        }
        return 0;
    }
  • 相关阅读:
    UI自动化测试入门一:Python3+Selenium环境搭建
    Linux下限制进程的CPU利用率
    Linux下模拟CPU占用100%
    Java接口自动化——OkHttp框架
    Java接口自动化——Before/After注解、Parameters注解和DataProvider注解
    Java接口自动化——TestNG快速开始
    《重构 改善既有代码的设计》读书笔记-坏代码的味道
    linux-脚本问题汇总
    RocketMq源码学习-消息存储
    linux-文本处理-grep
  • 原文地址:https://www.cnblogs.com/6bing/p/4116759.html
Copyright © 2011-2022 走看看