国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

sdutacm-樹結構練習——排序二叉樹的中序遍歷

2019-11-06 06:21:38
字體:
來源:轉載
供稿:網友

樹結構練習——排序二叉樹的中序遍歷

TimeLimit: 1000MS Memory Limit: 65536KB

SubmitStatistic

PRoblem Description

在樹結構中,有一種特殊的二叉樹叫做排序二叉樹,直觀的理解就是——(1).每個節點中包含有一個關鍵值 (2).任意一個節點的左子樹(如果存在的話)的關鍵值小于該節點的關鍵值 (3).任意一個節點的右子樹(如果存在的話)的關鍵值大于該節點的關鍵值。現給定一組數據,請你對這組數據按給定順序建立一棵排序二叉樹,并輸出其中序遍歷的結果。

 

Input

輸入包含多組數據,每組數據格式如下。

第一行包含一個整數n,為關鍵值的個數,關鍵值用整數表示。(n<=1000)

第二行包含n個整數,保證每個整數在int范圍之內。

Output

為給定的數據建立排序二叉樹,并輸出其中序遍歷結果,每個輸出占一行。

 

Example Input

1

2

2

1 20

Example Output

2

1 20

Hint

 

Author

 趙利強

#include<stdio.h>#include<algorithm>#include<string.h>#include<iostream>#include<math.h>#include<queue>#include<stdlib.h>using namespace std;typedef struct node{   int data;   struct node *l;   struct node *r;}tree;void insert(tree*&root,int x){     if(root == NULL)     {        tree*p;        p = (tree*)malloc(sizeof(tree));        p->data = x;        p->l = NULL;        p->r = NULL;        root =  p;     }     else if(x<root->data)     {         insert(root->l,x);     }     else     {        insert(root->r,x);     }}tree* build(tree*root,int a[],int o){    root = NULL;    for(int i= 0;i< o;i++)    {       insert(root,a[i]);    }    return root;}int top;//控制空格輸出void inout(tree*root){     if(root)     {         inout(root->l);         if(top)top=0;         else printf(" ");         printf("%d",root->data);         inout(root->r);     }}int main(){    int n;    while(~scanf("%d",&n))    {       top = 1;        int a[1002],i;        for(i=0;i<n;i++)        scanf("%d",&a[i]);         tree *root;         root = build(root,a,n);         inout(root);         cout<<endl;    }   return 0;}/***************************************************User name: jk160505徐紅博Result: AcceptedTake time: 0msTake Memory: 168KBSubmit time: 2017-02-08 09:01:43****************************************************/

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 咸阳市| 隆尧县| 罗山县| 轮台县| 乌兰浩特市| 泊头市| 石棉县| 大宁县| 柘荣县| 蒙山县| 东莞市| 项城市| 泽州县| 龙陵县| 隆昌县| 桐城市| 根河市| 山阳县| 衡东县| 英吉沙县| 武冈市| 无极县| 德兴市| 望都县| 龙江县| 江口县| 咸阳市| 吉安市| 蓬莱市| 庆阳市| 玉林市| 偏关县| 昭通市| 延庆县| 恩平市| 临西县| 富平县| 隆回县| 抚松县| 尖扎县| 惠水县|