题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=3999

本题为简单二叉排序树,先按排序树创建树,然后先序遍历二叉树,输出的时候最后一个数字后面没有空格。

数组实现:

#include<stdio.h>
#include<string.h>
#define N 100005
int tree[N],left[N],right[N],a[N],num,flg;//tree数组用来保存树节点的值,left,right数组用来保存结点的左右子树,
void insert(int index,int x)
{if( x <= tree[index] )//当根结点比x的值大 的时候。{if(left[index] == -1)//当根结点左子树为空的时候。left[index] = flg;elseinsert(left[index],x);//左子树不为空时继续遍历左子树}else{if(right[index] == -1)//当右子树为空时right[index] = flg;elseinsert(right[index],x);//当右子树不为空的时候}
}
void PreOrderTraverse(int index)//先序遍历二叉排序树
{a[num++] = tree[index];if(left[index] != -1)PreOrderTraverse(left[index]);if(right[index] != -1)PreOrderTraverse(right[index]);
}
int main()
{int n,i,x,root;while(~scanf("%d",&n)){//初始化树的所有结点都为空。memset(left,-1,sizeof(left));memset(right,-1,sizeof(right));root = -1;flg = 0;for(i = 0; i< n; i++){scanf("%d",&x);if(root == -1)tree[++root] = x;else{tree[++flg] = x;insert(root,x);}}num = 0;PreOrderTraverse(root);printf("%d",a[0]);for(i = 1; i <= n -1; i++)printf(" %d",a[i]);printf("\n");}return 0;
}

动态创建二叉树排序树

#include<stdio.h>
#include<stdlib.h>
struct node
{int data;struct node *left;struct node *right;
};
int b[100005],num,n;
void delete_tree(node *t)
{if(t->left)delete_tree(t->left);if(t->right)delete_tree(t->left);free(t);
}
node* insert(node *t,int x)
{if(t){if(x < t->data)t->left = insert(t->left,x);elset->right = insert(t->right,x);}else{t = (node*)malloc(sizeof(node));t->data = x;t->left = t->right = NULL;}return t;
}
void PreOrderTraverse(node *t)
{if(t == NULL)return ;b[num++] = t->data;PreOrderTraverse(t->left);PreOrderTraverse(t->right);free(t);
}
node *create(node *t)
{int i,x;for(i = 0; i < n; i++){scanf("%d",&x);t = insert(t,x);}return t;
}
int main()
{int i;node *root;while(~scanf("%d",&n)){root = NULL;root = create(root);num = 0;PreOrderTraverse(root);printf("%d",b[0]);for(i = 1; i < n; i++)printf(" %d",b[i]);printf("\n");}return 0;
}

转载于:https://www.cnblogs.com/LUO257316/archive/2012/08/30/3220835.html

hdu 3999The order of a Tree相关推荐

  1. The order of a Tree(模拟BST的建树和访问)

    题目链接 Problem Description As we know,the shape of a binary search tree is greatly related to the orde ...

  2. The order of a Tree hdu3999 二叉搜索树

    题目链接: hdu3999 The order of a Tree 题意: 给一个二叉搜索树的序列,求输出可以构成这个二叉搜索树的且满足字典序最小的插入序列 找了一个比较具体描述怎么根据序列建立二叉搜 ...

  3. HDU3999 The order of a Tree【二叉搜索树 + 前序遍历】

    The order of a Tree 题意: 给定一个二叉搜索树的插入顺序,要求输出建树之后的前序遍历. 题解: 连续第二天做到二叉搜索树了,真的吹爆这个算法,从二叉树啥也不懂,到简单搜索树直接秒杀 ...

  4. HDU3999-The order of a Tree

    The order of a Tree Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) ...

  5. HDU 3999 The order of a Tree

    /*二叉树的插入,前序遍历. */#include<iostream> #include<cstring> #include<stdio.h> #include&l ...

  6. leetcode【102,103】Binary Tree Level Order Traversal Binary Tree Zigzag Level Order Traversal

    问题描述(102): Given a binary tree, return the level order traversal of its nodes' values. (ie, from lef ...

  7. HDU 1325 Is It A Tree? 并查集

    点击打开链接 Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  8. HDU 4912 Paths on the tree(LCA+贪心)

    题目链接 Paths on the tree 来源  2014 多校联合训练第5场 Problem B 题意就是给出m条树上的路径,让你求出可以同时选择的互不相交的路径最大数目. 我们先求出每一条路径 ...

  9. HDU - 3804 Query on a tree(主席树维护最大值+离散化)

    题目链接:点击查看 题目大意:给出一棵树,每条边上都有一个权值,给出m个查询:a,b:问从点1到点a的唯一路径上,在边权小于等于b的边中选出边权最大的值输出,若没有符合条件的边则输出-1: 题目分析: ...

最新文章

  1. python中的二进制、八进制、十六进制的相互转换
  2. 解决OutOfMemoryError: unable to create new native thread问题
  3. 贷款,别相信这些人!
  4. 利用自己构建的网络进行鼾声识别
  5. yjk只算弹性的不计算弹塑性_盈建科弹塑性分析
  6. Hibernate3的jar包
  7. 教您用事务一次处理多条SQL语句
  8. u大师u盘装系统win7_怎么用u盘装win7系统
  9. 笔记本电脑如何连接手机热点_如解决Mac连接手机热点出错问题 ?
  10. 雅思准考证可以下载到电脑上吗
  11. 免费二级域名分发企业备案域名 阿里云备案域名
  12. FATAL:gpu_data_manager_impl_private.cc The display compositor is frequently crashing. Goodbye.
  13. 中文乱码问题—字符集utf8、uf8mb4与排序规则
  14. 干货|以产品要素设计解读线上小微信贷
  15. 第四行记录到第12韩记录
  16. 苹果微信更新不了最新版本_微信更新7.0版本,为何优先给iOS用户体验?这是在歧视安卓?...
  17. Java编程思想笔记——并发3
  18. [逆向工具] 详解pbtk解析steam中的protobuf协议
  19. Git学习笔记-完全版
  20. Parity(带权值的并查集)

热门文章

  1. LeetCode 1641. 统计字典序元音字符串的数目(DP)
  2. LeetCode MySQL 1098. 小众书籍
  3. LeetCode 1064. 不动点(二分查找)
  4. LeetCode 1109. 航班预订统计(差分思想)
  5. LeetCode 1405. 最长快乐字符串(贪心)
  6. html校园首页设计说明范文,网页设计作品设计说明-必看请相互转告
  7. 原生html5时间组件,JFinal遇到了原生Html5时间组件格式转换问题怎么处理?
  8. python最好用的助手_推荐5款好用的Python工具
  9. 全面系统地总结Linux的基本操作(上)
  10. Python 20 秒画完小猪佩奇“社会人”!