bst :binary search tree(二叉搜索树)对于树中的每个节点n,左子树中的所有节点的关键字都小于节点n的关键字,右子树中所有节点的关键字都大于节点n的关键字struct node{ int key; struct node *left; //左节点 s...
分类:
其他好文 时间:
2014-06-28 17:06:24
阅读次数:
186
二叉搜索树最大特征是:左边子结点的值#include #include typedef struct NODE{ NODE * pleft; NODE * pright; int ivalue;} node;/* 错误示例,实际上这个函数并没有连接起新建的结点void inser...
分类:
其他好文 时间:
2014-06-25 20:24:38
阅读次数:
192
AVLTree即(Adelson-Velskii-Landis Tree),是加了额外条件的二叉搜索树。其平衡条件的建立是为了确保整棵树的深度为O(nLogn)。平衡条件是任何节点的左右子树的高度相差不超过1.在下面的代码中,编程实现了AVL树的建立、查找、插入、删除、遍历等操作。采用C++类封装。...
分类:
编程语言 时间:
2014-06-25 13:32:44
阅读次数:
353
题目:输入一个整数数组,判断该数组是不是某个二叉搜索树的后序遍历序列假设输入的数组的数字均不相同解题分析:对于二叉搜索树,中序序列一定是升序的,我们将后序遍历序列排序,结果即为 中序遍历序列如果该后序遍历序列是正确的,那么 由 中序遍历序列和后序遍历序列 一定可以构建一棵二叉树如果不能成功构建一棵二...
分类:
其他好文 时间:
2014-06-24 14:10:18
阅读次数:
166
题目:输入一棵BST,将该BST转换成一个排序的双向链表要求不能创建新的结点,只能调整树中结点指针的指向在BST中,左子节点的值 小于父节点的之, 父节点的值小于 右子节点的值因此我们在转换成有序的双向链表时,原先指向左子节点的指针调整为链表中指向前一个结点的指针原先指向右子节点的指针调整为链表中指...
分类:
其他好文 时间:
2014-06-24 13:38:31
阅读次数:
243
题目:输入一棵二叉搜索树(记住是搜索树),将该二叉搜索树转换为一个排序的双向链表。要求:不能创建任何新的结点,只能调整树中结点指针的指向。分析:如下图因为是二叉搜索树。所以树的排列是规则的。通过中序遍历正好遍历的是由小到大的序列。要求说明是只能改变树结点指针的指向,不能增加新的空间和结点。所以在中序...
分类:
其他好文 时间:
2014-06-23 06:57:13
阅读次数:
242
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.说明:平衡二叉搜索树,即任何结点的左子树和右子树高度最多相差1的二叉搜索树。二叉搜索树:二叉查找树(Bin...
分类:
其他好文 时间:
2014-06-21 00:47:08
阅读次数:
221
本武侠纯属虚构。引文有人说铁剑客是圣人的私生子,但其实圣人是一个老光棍,因为只有绝情绝欲了的人才能成为圣人。圣人的使命就是把这把剑交给它应有的主人。于是铁剑客就得到了它,从那天起,他称呼铁匠铺的师傅为圣人,因为在他的有生之年,师傅为他传道解惑,教会他绝世武功,还替他打造了一把属于他的剑。然后他修行圆...
分类:
其他好文 时间:
2014-06-18 20:52:03
阅读次数:
154
一颗binarysearchtree,我们要在其中删除node1。而node1对应的key是,比如说,key1.删除的基本想法是什么呢?1.找到key1对应的那个node在哪里。这个用一个迭代就可以完成了。2.删掉这个node(1)如果这个node没有左右子树,那么直接删掉就好了。(2)如果这个node只有左子树或..
分类:
其他好文 时间:
2014-06-16 18:32:13
阅读次数:
270
题目:输入一个数组,判断数组是不是某二叉搜索树的后序遍历。输入的数组的任意两个数字都不相同 分析:要明白题目的意思,意思就是判断一个数组是否是某个搜索树的后序遍历。首先要搞清搜索树的含义:跟结点大于左子树而小于右子树。其次,数组的最后一个结点一定是后序遍历的根节点。所以我们只要满足这两个条件,再通过...
分类:
其他好文 时间:
2014-06-16 13:27:16
阅读次数:
175