网站做等保备案,wordpress快速发布内容,实用网站建设知识点,小型办公室中式装修题目描述 在树结构中#xff0c;有一种特殊的二叉树叫做排序二叉树#xff0c;直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树#xff08;如果存在的话#xff09;的关键值小于该节点的关键值 (3).任意一个节点的右子树#xff08;如果存在的… 题目描述 在树结构中有一种特殊的二叉树叫做排序二叉树直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树如果存在的话的关键值小于该节点的关键值 (3).任意一个节点的右子树如果存在的话的关键值大于该节点的关键值。现给定一组数据请你对这组数据按给定顺序建立一棵排序二叉树并输出其中序遍历的结果。 输入 输入包含多组数据每组数据格式如下。 第一行包含一个整数n为关键值的个数关键值用整数表示。(n1000) 第二行包含n个整数保证每个整数在int范围之内。 输出 为给定的数据建立排序二叉树并输出其中序遍历结果每个输出占一行。 示例输入 1
2
2
1 20 示例输出 2
1 20 提示 #include iostream #includebits/stdc.h using namespace std; typedef struct node { int data; node *rchild,*lchild; }*BiTree,Bnode; int b[1001];//记录中序遍历 int top; void create(BiTree T,int x)//构建二叉排序树 { if(TNULL) { Tnew Bnode; T-datax; T-lchildT-rchildNULL; } else { if(xT-data) create(T-lchild,x); else create(T-rchild,x); } } void inorder(BiTree T)//中序遍历 { if(T) { inorder(T-lchild); b[top]T-data; inorder(T-rchild); } } int main() { int n,m; while(cinn) { BiTree T; TNULL; top0; if(n0) cout0endl; else { while(n--) { cinm; create(T,m); } inorder(T); for(int i0;itop;i) if(i) cout b[i]; else coutb[i]; coutendl; } } return 0; }