树结构练习——排序二叉树的中序遍历
2017-08-10 15:17
246 查看
Problem Description
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。
Input
输入包含多组数据,每组数据格式如下。
第一行包含一个整数n,为关键值的个数,关键值用整数表示。(n<=1000)
第二行包含n个整数,保证每个整数在int范围之内。
Output
为给定的数据建立排序二叉树,并输出其中序遍历结果,每个输出占一行。
Example Input
1
2
2
1 20
Example Output
2
1 20
在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果。
Input
输入包含多组数据,每组数据格式如下。
第一行包含一个整数n,为关键值的个数,关键值用整数表示。(n<=1000)
第二行包含n个整数,保证每个整数在int范围之内。
Output
为给定的数据建立排序二叉树,并输出其中序遍历结果,每个输出占一行。
Example Input
1
2
2
1 20
Example Output
2
1 20
#include <iostream> using namespace std; typedef struct BiTNode{ int data; struct BiTNode *lchild; struct BiTNode *rchild; }BiTNode,*BiTree; int ans; int n; //创建二叉树 BiTree Insert(BiTree T,int key){ if(T==NULL){ BiTree p = new BiTNode; 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(BiTree T){ if(T){ InOrder(T->lchild); ans++; if(ans==n) cout<<T->data; else cout<<T->data<<" "; InOrder(T->rchild); } } int main(){ while(cin>>n){ BiTree T = NULL; ans = 0; for(int i = 0;i<n;i++){ int key; cin>>key; T = Insert(T,key);//返回根节点 } InOrder(T); cout<<endl; } return 0; }
相关文章推荐
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- SDUT 2128 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- SDUT OJ 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历 分类: 树 2015-06-21 11:05 12人阅读 评论(0) 收藏
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- SDUT 2128 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- SDUT2128树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 树结构练习——排序二叉树的中序遍历
- 暑假集训 8.11 树结构练习——排序二叉树的中序遍历 sdutoj2128