• 树结构练习——排序二叉树的中序遍历(二叉搜索树)


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

    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;
    }
  • 相关阅读:
    CodeForces 705A(训练水题)
    --hdu 2602 Bone Collector (01背包)
    --Dirring love 音乐(01背包问题)
    简单的网络拓扑
    --hdu 1231 最大连续子序列(动态规划)
    hdu 1003 Max Sum(动态规划)
    hdu 1284 钱币兑换问题(动态规划)
    hdu 1176 免费馅饼(动态规划)
    hdu 2084 数塔(动态规划)
    --hdu 2124 Repair the Wall(贪心)
  • 原文地址:https://www.cnblogs.com/6bing/p/4116759.html
Copyright © 2020-2023  润新知