二叉搜索树,也叫二叉排序树、二叉查找树或BST(Binary Search Tree)。二叉搜索树或是一棵空疏,或者是一棵具有下列特性的非空二叉树:1. 若左子树非空,则左子树上的所有节点的关键字值均小于根节点的关键字的值。2. 若右子树非空,则右子树上的所有节点的关键字值均大于根节点的关键字的值。...
分类:
其他好文 时间:
2015-01-12 22:29:06
阅读次数:
206
这个例子只是一个简单的连续发送数据,接收数据的DEMO。因为最近做一个项目,要求robot连续的通过Socket传回自己的当前的位置坐标,然后客户端接收到坐标信息,在本地绘制地图,实时显示robot的位置。里面还有好多的问题,在实际的项目中一定要解决,不然肯定跑步起来。比如:消息边界问题(帧的边界)...
题目:
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的方向:
分析:
1:由于要求链表是有序的,可以借助二叉树中序遍历,因为中序遍历算法的特点就是从小到大访问结点。当遍历访问到根结点时,假设根结点的左侧已经处理好,只需将根结点与上次访问的最近结点(左子树中最大值结点)的指针连接好即可。进而更新当前链表的最后一个结点指针。...
分类:
编程语言 时间:
2015-01-05 16:41:42
阅读次数:
151
一个二叉树被序列化为数组,如何反序列化,也就是如何从序列化好的一个数组恢复成二叉树?
在上一篇文章中讲述了如何将一个有序数组创建成一个二叉搜索树,那么如果将将一个儿茶搜索树序列化为一个有序数组,然后按照上面的方法在反序列化即可。对二叉搜索树进行中序遍历即可得到一个有序的数组,那么上篇文章已经完成了对二叉搜索树的序列化和反序列化。同时如果想将二叉搜索树的序列化和反序列化的结果通过文件读取,也是同样...
分类:
其他好文 时间:
2015-01-04 21:29:04
阅读次数:
172
输入一个有序的数组,如何实现将这个有序整数数组放到二叉树中?
分析:对于二叉树,可以将这个有序数组插入到二叉搜索树中,毕竟二叉搜索树还是有很多特定的。那么对于创建二叉搜索树来说,就是简单的递归了。关于树的算法设计一定要联想到递归,因为树本身就是递归的函数。
那么可以对于这个有序数组分析,将这个数组的中位数作为根节点,然后对于数组的前半部分创建一个树作为根节点的左子树,后半部分创建一个二叉搜索树...
分类:
编程语言 时间:
2015-01-04 17:10:58
阅读次数:
195
1、是二叉搜索树(Binary Search Tree)2、树和所有左右子树高度之差为-1,0,1平衡因子(balance factor) =右子树高度-左子树高度平衡化旋转: 1、从插入位置向根节点计算节点的平衡因子; 2、若发现不平衡点(即平衡因子绝对值大于1),从此节点向下取两层; 3...
分类:
其他好文 时间:
2015-01-04 01:07:09
阅读次数:
421
线段树(segment tree),一种二叉搜索树。比较常用。 就像这样。 推荐直接看http://wenku.baidu.com/view/94a8c01959eef8c75fbfb3d4.html (杭电的大神写的,十分推荐,特别棒。)例题:HDU 1166HDU 1754HDU 139...
分类:
其他好文 时间:
2014-12-28 22:01:48
阅读次数:
175
太弱了,太弱了!A:基本的判断吧,然后就是边界问题,写了好久,结果发现时房间第二个交的。。B:真心跪了,还好想出来了,思路想的太慢太慢,结果交上去,落后太多,不过HACK时很多人挂了,这也是DIV1的A题。做法是:如果对于一个long long 的数质因数分解师很难做到的。但是题目告诉了m/2个数,...
分类:
其他好文 时间:
2014-12-28 20:38:56
阅读次数:
143
二叉搜索树:动态查找a.非空左子树的所有值小于其根接点值b.非空右子树的所有值大于其根接点值c.左、右子树均为二叉搜索树Position Find( ElementType X, BinTree BST ):从二叉搜索树BST中查找元素X,返回其所在结点的地址Position FindMin( Bi...
分类:
其他好文 时间:
2014-12-28 11:41:26
阅读次数:
128