题目描述

二叉排序树,也称为二叉查找树。先给你N个关键值各不相同的结点,要求那你按顺序插入一个初始为空树的二叉排序中,每次插入成功后,求相应的父节点的关键字值,如果没有父节点,则输出-1.

输入

第一行一个数字N(N<=100),表示待插入节点数。

第二行,N个互不相同的正整数,表示要顺序插入节点的关键字值,这些值不超过10

8

输出

输出一行N个数,分别表示每次插入节点后,该节点对于的父节点的关键字值。

样例输入

5

2 5 1 3 4

样例输出

-1 2 2 5 3

提示

来源

AC code:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define LL long long

#define exp 1e-9

#define MAXN 1000010

using namespace std;

typedef struct BTNode{

int data;

BTNode *lchild;

BTNode *rchild;

}BTNode;

void insertBT(BTNode *&bt,int x)

{

BTNode *pre,*p;

p=bt;

int dir=0;

if(p==NULL)

{

bt = (BTNode *)malloc(sizeof(BTNode));

bt->data=x;

bt->lchild=NULL;

bt->rchild=NULL;

printf("-1 ");

}

else

{

while(p!=NULL)

{

pre=p;

if(p->data>x)

{

p=p->lchild;

}

else

{

p=p->rchild;

}

}

p = (BTNode *)malloc(sizeof(BTNode));

p->data=x;

p->lchild=NULL;

p->rchild=NULL;

if(pre->data>x)

{

pre->lchild=p;

}

else

{

pre->rchild=p;

}

printf("%d ",pre->data);

}

}

int main()

{

//freopen("D:\\in.txt","r",stdin);

int n,i,x;

scanf("%d",&n);

BTNode *bt=NULL;

for(i=1;i<=n;i++)

{

scanf("%d",&x);

insertBT(bt,x);

}

puts("");

return 0;

}

php二叉排序树,二叉排序树(建树)相关推荐

  1. 树和二叉树(四种遍历,建树)详解+二叉排序树(包含图像和相关习题)

    目录 树和二叉树 一.树 2.有序树和无序树 3.森林 4.树的基本性质 二.二叉树的概念 (1)二叉树的编号 1.二叉树和度为2的有序树的区别: 2.满二叉树 3.完全二叉树: 4.平衡二叉树: 5 ...

  2. 数据结构-判断一棵树是否为二叉排序树

    判断一棵树是否为二叉排序树 二叉排序树的性质:如果按照中序遍历的方式遍历二叉排序树的话,遍历的数字是呈递增趋势的.我们根据这个思路去判断是否为二叉排序树. 思路: ①建树 ②设立一个变量去记录当前已经 ...

  3. 数据结构与算法-二叉排序树

    一棵二叉排序树(Binary Sort Tree)(又称二叉查找树)或者是一棵空二叉树,或者是具有下列性质的二叉树: 1. 若它的左子树不空,则左子树上所有结点的键值均小于它的根结点键值: 2. 若它 ...

  4. 二叉查找树(二叉排序树)创建,插入,删除操作。

    二叉排序树 二叉排序树是一个基础的树的数据结构.应用许多. 它的特性就是,左孩子小于parent.右孩子大于parent. 寻找节点 寻找节点就是直接依据数值的大小.从root节点開始遍历,大于当前遍 ...

  5. 【数据结构-树】3.详解二叉排序树(理论+代码)

    二叉排序树 二叉排序树的定义 二叉排序树也称为二叉查找树.二叉排序树或者是一棵空树,或者是一棵具有如下特性的非空为茶树 若左子树非空,则左子树所有结点关键字值均小于根结点的关键字值 若右子树非空,则右 ...

  6. 833系列——二叉排序树

    考纲中,二叉排序树在"查找"章节,要求为:二叉排序树及其基本操作. 其基本操作有:查找操作,插入操作,删除操作 一:定义 二叉排序树(Binary Sort Tree),又称二叉查 ...

  7. 大话数据结构 : 二叉排序树

    二叉排序树 二叉排序树的好处在于插入 删除 查找的效率很高,比线性表和数组都好 二叉树稍微难一点的敌方在于删除,在删除一个既有左子树也有右子树的节点时比较麻烦,策略就是将要删除的节点的左子树中向右查找 ...

  8. 数据结构:二叉排序树

    1.二叉排序树 二叉排序树:BST( Binary Sort( Search)Tree,又称二叉查找树(Binary Search Tree),亦称二叉搜索树.对于二叉排序树的任何一个非叶子节点,要求 ...

  9. java 二叉排序_java实现二叉排序树

    最近终于静下心来,自己实现了个二叉排序树,还是很有成就感的. package tree; public class TreeNode { //结点存放的数据 public T data; //当前结点 ...

最新文章

  1. Spring 基于xml配置方式的AOP
  2. reactor官方文档译文(2)Reactor-core模块
  3. python格式字符串的参数不足_格式字符串的参数不足
  4. 最新综述:用于文本分类的数据增强方法
  5. Foundation框架: 9.OC中的集合类之四 - NSMutableDictionary的基本认识
  6. 致技术创业的朋友:其实销售很简单(Z)
  7. java演出厅选票_高仿猫眼电影选座(选票)模块-b
  8. kotlin 第一个程序_Kotlin程序添加两个矩阵
  9. mysql not like 没用_PHP - 使用NOT LIKE时,mysql查询不起作用
  10. GDC2017分享:移动VR开发者的赚钱之道
  11. emacs 替换模式_如何使用Emacs Org模式撰写博客
  12. 前端把信息放在弹框里显示出来_jsp + js + 前端弹出框
  13. spring容器创建bean对象的方式以及如何处理多个spring配置文件
  14. Windows-Exploit-Suggester
  15. 计算机关机时间设置方法,电脑如何设置定时关机 电脑定时关机设置方法
  16. Hack The Box——Academy
  17. hadoop-ykt(自定义key)
  18. matlab悬置非线性位移计算公式,动力总成悬置系统运动包络及工况载荷计算方法...
  19. JSP Web学习心得
  20. BFS算法 蓝桥杯长草问题

热门文章

  1. 利用顺序栈解决括号匹配问题(c++)-- 数据结构
  2. ajax 解决csrf的3种方法,input标签的文件上传
  3. 解决局域网共享问题,提示:无法访问,你可能没有权限使用网络资源
  4. 找不到具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的实体框架提供程序
  5. 向pandas DataFrame添加一行
  6. 将分支指针移动到不同的提交而不签出
  7. 硬盘与电线挨着会高温吗_对着电线撒尿,会触电吗?
  8. nginx 命令_MAC 操作nginx命令
  9. python变量图片_在Python中向3D图添加第4个变量
  10. mysql bat备份_Windows下简单的Mysql备份BAT脚本分享