剑指offer 24题
题目描述:http://ac.jobdu.com/problem.php?pid=1367
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。搜索二叉树的特征:
左子树的节点小于根
右子树的节点大于根
任意子树都是搜索二叉树
而后序遍历时,左右根,序列的最后一项总是根。在序列中找到根...
分类:
其他好文 时间:
2015-07-26 17:28:12
阅读次数:
189
求二叉树中的节点个数
求二叉树中叶子节点的个数
求二叉树的深度
求二叉树第K层的节点个数
递归遍历前序中序后序
非递归遍历前序中序后序层序
1 前序遍历
2 中序遍历
3 后序遍历
4 层序遍历
将二叉查找树变为有序的双向链表
判断两棵二叉树是否结构相同
判断二叉树是不是平衡二叉树
判断二叉树是否是搜索二叉树
求二叉树中两个节点的最低公共祖先节点
求二叉树中节点的最大距离
由前序遍历序列和中序遍历序列重建二叉树...
分类:
其他好文 时间:
2015-07-26 12:41:58
阅读次数:
186
#include
#include
using namespace std;
struct treeNode
{
int value;
treeNode* left;
treeNode* right;
treeNode* parent;
};//节点结构
void insert(treeNode **root,int value)
{
treeNode* ...
分类:
其他好文 时间:
2015-05-12 09:36:45
阅读次数:
121
//////二叉搜索树.
#include
using namespace std;
template
class BSTNode{
public:
Type data;
BSTNode *left;
BSTNode *right;
BSTNode(Ty...
分类:
编程语言 时间:
2015-05-11 09:02:48
阅读次数:
216
目录
伸展树的介绍
伸展树的C实现
1 节点定义
2 旋转
3 伸展树的伸展
4 搜索
4 伸展树的插入和删除
全部代码和参考资料1. 伸展树的介绍伸展树(splay tree)是一种搜索二叉树,它能在O(log n)O(log\ n)内完成插入、查找和删除操作。
(1)伸展树满足搜索二叉树的性质,左子节点小于根节点,右子节点大于等于根节点。
(2)伸展树独有特点:当某个节点被访问时,伸展树会通...
分类:
其他好文 时间:
2015-04-30 12:38:57
阅读次数:
187
剑平面阿里被问到这个,刚开始画了下看有什么性质,乱蒙了几个都被推翻了,初始感觉就是要O(n)的,因为印象中BST的构树都可以O(nlogn)搞定。然后剑平说最后一个数肯定是根节点,一下反应过来了,就是二分出间隔点然后两边递归判断,不过这好像还是构树的思路,可以把整棵树构造出来。然后剑平说不是二分,直...
分类:
其他好文 时间:
2015-04-21 23:58:58
阅读次数:
299
#ifndef _BIN_TREE_H
#define _BIN_TREE_H
#include
#include
#include
struct _Tree_node
{
int data;
struct _Tree_node *left;
struct _Tree_node *right;
};
typedef int element_type;
t...
分类:
其他好文 时间:
2015-04-13 20:56:40
阅读次数:
122
/*****************搜索二叉树*********************/
//《算法导论》P161
/*构建一个有n个不同关键字的二查搜索树的期望高度为h = O(lgn);
下述所有查找等操作的时间复杂度为O(h)
*/
/******定义搜索二叉树*****/
//对于任一节点x,满足其左子树上的节点key都不大于x.key
// ...
分类:
编程语言 时间:
2015-03-29 10:51:02
阅读次数:
137
1. 题目
输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。
二叉树结点的定义如下:
struct BinaryTreeNode
{
intm_nValue;
BinaryTreeNode*m_pLeft;
BinaryTreeNode*m_pRight...
分类:
其他好文 时间:
2015-03-21 21:22:44
阅读次数:
173
把几个主要的函数组合起来即可:1.从文本读取单个单词(去掉空格,特殊符号等)2.用读出来的单词去更新搜索二叉树的节点(涉及二叉树的构建问题,递归)3.中序遍历,来递归打印二叉树的每个节点代码:#include #include #include #include #define MAXWORD 10...
分类:
其他好文 时间:
2015-03-19 23:37:30
阅读次数:
184