二叉树
文章平均质量分 79
Scandinavians
明天会更好!
展开
-
AA树—简单的红黑树
BB-树是带有一个附加条件的的红黑树:一个结点最多可以y原创 2014-07-14 23:46:24 · 1199 阅读 · 1 评论 -
判断二叉树是否平衡以及二叉树的路径和
问题一:查找二叉树是否有满足和值原创 2014-07-06 15:10:36 · 400 阅读 · 0 评论 -
2-3树的基本操作实现
通过引入结点度大于2的chazh原创 2014-07-08 18:50:52 · 1141 阅读 · 0 评论 -
平衡二叉树AVL的基本操作之插入
平衡二叉树或是一棵空树,或是具有下列性质的二叉排序树:其左子树和右子树都是平衡二叉树,而且左右子树深度之差绝对值不超过1. 由此引出了平衡因子(balance factor)的概念,bf定义为该结点的左子树的深度减去右子树的深度(有些书是右子树深度减去左子树深度,我是按照左子树减去右子树来计算的,下面的代码也是这样定义的),所以平衡二叉树的结点的平衡因子只可能是 -1,0,1 ,某个结点的平衡因子原创 2014-07-07 20:42:57 · 902 阅读 · 0 评论 -
平衡二叉树AVL的基本操作之删除
接文章《平衡二叉树的基本操作之插入》,这里给出删除原创 2014-07-07 22:13:12 · 886 阅读 · 0 评论 -
二叉查找树的基本操作之查找插入删除
二叉查找树(BinarySearch Tree,也叫二叉搜索树,或称二叉排序树Binary Sort Tree)或者是一棵空树,或者是具有下列性质的二叉树: (1)、若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值; (2)、若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值; (3)、它的左、右子树也分别为二叉查找树。原创 2014-07-06 20:32:29 · 432 阅读 · 0 评论 -
红黑树的基本概念
红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和原创 2014-07-09 23:27:21 · 541 阅读 · 0 评论 -
2-3-4树与红黑树的对应关系
2-3-4树和红黑树之间原创 2014-07-09 19:19:58 · 3832 阅读 · 0 评论 -
红黑树(RED-BLACK TREE)的插入和删除
红黑树的左旋和右旋原创 2014-07-12 16:06:45 · 875 阅读 · 0 评论 -
2-3-4树
前有2-3树,2-3-4树的概念不原创 2014-07-09 02:34:15 · 736 阅读 · 0 评论 -
伸展树
伸展树,是一种二叉排序树。它可以baozheng原创 2014-07-13 20:53:29 · 714 阅读 · 0 评论 -
Treap树结构
Treap,是有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为O(logn)。相对于其他的平衡二叉搜索树,Treap的特点是实现简单,且能基本实现随机平衡的结构。 Treap=Tree+Heap。Treap本身是一棵二叉搜索树,它的左子树和右子树也分别是一个Treap,和一般的二叉搜索树不同的是,Treap纪录一个额外原创 2014-07-15 00:42:26 · 469 阅读 · 0 评论 -
二叉树后序遍历的两种非递归实现思路
后序遍历的非递归实现是三种遍历方式中最难的一种。因为在后序遍历中,要保证左孩子和右孩子都已被访问并且左孩子在右孩子前访问才能访问根结点,这就为流程的控制带来了难题。下面介绍两种思路。 第一种思路:对于任一结点P,将其入栈,然后沿其左子树一直往下搜索,直到搜索到没有左孩子的结点,此时该结点出现在栈顶,但是此时不能将其出栈并访问,因此其右孩子还为被访问。所以接下来按照相同的规则对其右子树原创 2014-07-05 01:57:47 · 985 阅读 · 0 评论 -
求二叉树的镜像
求解二叉树的镜像方式原创 2014-07-05 20:29:32 · 446 阅读 · 0 评论 -
二叉树的非递归中序遍历以及层序遍历实现
代码”“:/*Types.h*/#ifndef _TYPES_H#define _TYPES_Htypedef char ElemType;typedef struct BTNode{ ElemType data; BTNode * lChild; BTNode * rChild;}BTNode,*BTree;typedef BTree Item;typedef原创 2014-06-27 17:41:56 · 500 阅读 · 0 评论 -
二叉树的创建与前序中序后序遍历的递归实现
一切都在代码里:原创 2014-06-27 00:21:22 · 338 阅读 · 0 评论 -
二叉树的后序遍历(非递归算法)
可以巧妙的用两个栈来实现后序遍历的非递归算法。注意到后序遍历可以看作是下面遍历的逆过程:即先遍历某个结点,然后遍历其右孩子,然后遍历其左孩子。这个过程逆过来就是后序遍历。算法步骤如下:Push根结点到第一个栈s中。从第一个栈s中Pop出一个结点,并将其Push到第二个栈output中。然后Push结点的左孩子和右孩子到第一个栈s中。重复过程2和3直到栈s为空。完成后原创 2014-06-27 21:19:53 · 1830 阅读 · 0 评论 -
从先序遍历和中序遍历结果重建二叉树
问题:给定二叉树的先序遍历和中序遍历字符串结果,原创 2014-07-01 21:44:12 · 391 阅读 · 0 评论 -
二叉树的先序遍历(非递归算法)
思路一:主要思想就是先将根结点压入栈,然后根结点出栈并访问根结点,而后依次将根结点的右孩子、左孩子入栈,直到栈为空为止。代码()原创 2014-06-27 19:55:30 · 1040 阅读 · 0 评论 -
二叉树的中序遍历(非递归算法)
思路一:代码:原创 2014-06-27 20:40:38 · 406 阅读 · 0 评论 -
求二叉树的高度以及二叉树的树形显示
二叉树的高度用递归的方式求解,二叉树的树形显示利用其对应wanqu原创 2014-07-03 20:56:50 · 1104 阅读 · 0 评论 -
利用Matlab实现二叉树的树形显示
接文章《求二叉树的高度以及二叉树的树形显示》,当求出erweiju原创 2014-07-03 22:44:23 · 14284 阅读 · 0 评论 -
打印二叉树根结点到所有叶子结点的路径
打印路径的思路:利用yig原创 2014-07-06 13:00:33 · 1950 阅读 · 0 评论 -
控制台的二叉树树形显示
在文章《求二叉树的高度以及二叉树的树形显示》中,显示的结点的下一行de原创 2014-07-04 15:45:07 · 1850 阅读 · 0 评论 -
三种创建二叉树的方式
代码一:void BuildBinTree(BinTree *T){ char item; cin>>item; if(item=='#') { *T = NULL; } else { *T = new BinTreeNode; (*T)->data = item; BuildBinTree(&((*T)->lchild)); BuildBinTree(&(原创 2014-07-06 16:36:56 · 547 阅读 · 0 评论 -
求二叉树中节点的最大距离
《编程之美》 3.8 求二叉树节点中的zuida原创 2014-08-09 23:58:14 · 420 阅读 · 0 评论