sdut 2128 树结构练习——排序二叉树(BST)的中序遍历
来源:互联网 发布:wap彩票网站源码 编辑:程序博客网 时间:2024/05/16 04:05
树结构练习——排序二叉树的中序遍历
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic Discuss
Problem Description
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。
Input
输入包含多组数据,每组数据格式如下。
第一行包含一个整数n,为关键值的个数,关键值用整数表示。(n<=1000)
第二行包含n个整数,保证每个整数在int范围之内。
Output
为给定的数据建立排序二叉树,并输出其中序遍历结果,每个输出占一行。
Example Input
1221 20
Example Output
21 20
#include<iostream>using namespace std;int tag;typedef struct btree{int data;struct btree *lchild,*rchild;}btree;void createbtree(btree *&T,int key){if(T==NULL){T=new btree;T->lchild=T->rchild=NULL;T->data=key;return ;}if(key<T->data)createbtree(T->lchild,key);elsecreatebtree(T->rchild,key);}void InOrder(btree *b){if(b){InOrder(b->lchild);if(!tag) { cout<<b->data; tag=1; } else cout<<' '<<b->data;InOrder(b->rchild);}}int main(){int m,n;btree *T;while(cin>>m){ tag=0;T=NULL;for(int i=0;i<m;i++){cin>>n; createbtree(T,n);}InOrder(T);cout<<endl;}return 0;}
对于排序二叉树的讲解:
http://blog.csdn.net/stpeace/article/details/9067029
http://blog.csdn.net/hackbuteer1/article/details/7275396
下面的代码等我回来:
#include <iostream>#include <malloc.h>using namespace std;typedef struct btree{ int date; btree *lchild,*rchild;}btree;btree *root;btree *createbtree(btree *&root,int a){ btree *b=root;//这时候就不对b分配指针空间就不对 if(b==NULL) { b=(btree *)malloc(sizeof(btree)); b->date=a; b->lchild=b->rchild=NULL; return b; } if(a<b->date) createbtree(b->lchild,a); else createbtree(b->rchild,a);}void inorder(btree *b){ if(b!=NULL) { inorder(b->lchild); cout<<b->date; inorder(b->rchild); }}int main(){ int n; while(cin>>n) { int a; root=(btree*)malloc(sizeof(btree)); root=NULL; for(int i=0;i<n;++i) { cin>>a; root=createbtree(root,a); } inorder(root); cout<<endl; } return 0;}
阅读全文
0 0
- sdut 2128 树结构练习——排序二叉树(BST)的中序遍历
- SDUT 2128 树结构练习——排序二叉树的中序遍历
- SDUT 2128 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历 sdut oj(2128)
- SDUT 2128 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历 SDUT
- sdut oj2128 树结构练习——排序二叉树的中序遍历
- SDUT OJ 树结构练习——排序二叉树的中序遍历
- SDUT-树结构练习——排序二叉树的中序遍历
- SDUTOJ 2128 树结构练习——排序二叉树的中序遍历
- SDUTOJ 2128 树结构练习——排序二叉树的中序遍历
- sdut oj 2128排序二叉树的中序遍历
- 树结构练习-排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 后缀表达式求值
- C#基础之继承
- Jzoj4892 最优得分
- 解析markdown生成的文件md
- 小项目——基于嵌入式 web 服务器的测控系统
- sdut 2128 树结构练习——排序二叉树(BST)的中序遍历
- Chrome使用技巧 前端开发的一些技巧
- oracle基础知识
- CCF认证 201409-1:相邻数对
- LaTex列表
- 深度学习炼丹师的养成之路之——How to subtract the mean value
- Python爬虫——2017高校网络信息安全管理运维挑战赛:快速计算
- html5之页面跳转-hash
- nginx监控界面