以下是二叉搜索树中查找、插入、删除的递归和非递归算法数据类型设计:1 struct BSTNode 2 {3 ElementType data; // 结点元素值4 struct Node *leftChild; // 左子树根结点5 ...
分类:
其他好文 时间:
2014-07-18 19:05:40
阅读次数:
279
二叉排序树:
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。 它或者是一棵空树;或者是具有下列性质的二叉树:
(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;
(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树;
注:中序遍历一棵二叉排序...
分类:
其他好文 时间:
2014-07-12 19:35:08
阅读次数:
249
Problem Description推断两序列是否为同一二叉搜索树序列Input開始一个数n,(1#include #include using std::string;using std::cin;const int SIZE = (1>root; for (int i = 0; i >chi....
分类:
其他好文 时间:
2014-07-11 18:44:26
阅读次数:
205
前言
在前两篇文章二叉树和二叉搜索树中已经涉及到了二叉树的三种遍历。递归写法,只要理解思想,几行代码。可是非递归写法却很不容易。这里特地总结下,透彻解析它们的非递归写法。其中,中序遍历的非递归写法最简单,后序遍历最难。我们的讨论基础是这样的:...
分类:
其他好文 时间:
2014-07-08 16:16:25
阅读次数:
369
定义
二叉搜索树(Binary Search Tree)或称二叉查找树,也称二叉排序树(Binary Sort Tree)。它或者是一棵空树,或者是具有下列性质的二叉树:
若左子树不空,则左子树上所有节点的值均小于它的根节点的值;
若右子树不空,则右子树上所有节点的值均大于它的根节点的值;
左、右子树也分别为二叉搜索树;
性质
二叉搜索树与普通二叉树相比,有一些优秀的特征或性质:
由于节点是有序排放的:左子树<根节点<右子树。故在查找一个节点的时候,只需先和根节点比较,再决定是进入左子树还是右子树查找。...
分类:
其他好文 时间:
2014-07-06 11:06:37
阅读次数:
167
Problem Description
判断两序列是否为同一二叉搜索树序列
Input
开始一个数n,(1
接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。
接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
Output
...
分类:
其他好文 时间:
2014-07-04 09:15:42
阅读次数:
356
搜索树数据结构支持许多动态集合操作,如search(查找)、minmum(最小元素)、maxmum(最大元素)、predecessor(前驱)、successor(后继)、insert(插入)、delete(删除),这些都是基本操作,可以使用一颗搜索树当做一个字典或者一个优先队列。
12.1、什么事二叉搜索树
二叉搜索树是以一棵二叉树来组织的,可以用一个链表数据结构来表示,也叫二叉...
分类:
其他好文 时间:
2014-07-03 18:02:21
阅读次数:
231
二叉搜索树 与 双向链表 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目:输入一颗二叉搜索树, 将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点, 只能调整数中结点的指针的指向.本程序包含算法原理, 测试程序, 及 输出.代码:/*
* main.cpp
*
* Created on: 2014.6.12
*...
分类:
编程语言 时间:
2014-06-30 07:32:07
阅读次数:
226
分析:
还是二叉树遍历模板的改造问题,对于二叉搜索树,中序遍历的结果是有顺序的。题目的要求无非是将中序遍历的结点访问结果链接起来,至于双向链表,通过复用树结点的left 和 right 指针就可以完成。最直接的就是我们可以把中序遍历中访问到的每个结点都放入到个队列里,然后将队列的元素链接起来,但是题目不允许用额外的空间。
想想中心遍历,遍历顺序是 左 --根---右,那么中序遍历的第一个访问结...
分类:
其他好文 时间:
2014-06-27 07:56:13
阅读次数:
341
#include#include "fatal.h"struct AvlNode;typedef struct AvlNode *Position;typedef struct AvlNode *AvlTree;typedef int ElementType ;AvlTree MakeEmpty(A...
分类:
编程语言 时间:
2014-06-25 13:23:40
阅读次数:
267