BinaryTree
文章平均质量分 80
youngyoungla
alway be young
展开
-
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。
思路:根据前序遍历依次访问对应的中序遍历的节点,分为左子树和右子树创建。#include#includeusing namespace std;struct BinaryTreeNode{BinaryTreeNode(int _value):m_nValue(_value),m_pLeft(NULL),m_pRight(NULL){}int m_nValue;struct原创 2016-06-12 12:47:30 · 282 阅读 · 0 评论 -
二叉树的镜像
二叉树的镜像:先序遍历二叉树,若有子节点,则交换子节点。(1)递归实现(2)非递归实现,循环实现,利用栈#include#include#include#includeusing namespace std;struct BinaryTreeNode{BinaryTreeNode(int _value):m_nValue(_value),m_pLeft(NULL),m_pRig原创 2016-06-12 12:48:34 · 192 阅读 · 0 评论 -
二叉树的层次遍历
二叉树从上到下遍历:利用栈,先将根节点压入栈中,出栈,遍历该节点的左孩子,右孩子,依次把该节点的右孩子,左孩子压入栈中。#include#includeusing namespace std;struct BinaryTreeNode{ BinaryTreeNode(int value) :_value(value) ,_left(NULL) ,_right(NULL) {原创 2016-06-12 12:48:40 · 555 阅读 · 0 评论 -
数据结构-----------B树
一、B 树(平衡的多叉树) 一棵M阶(M>2)的B树,是一棵平衡的M路平衡搜索树,可以是空树,它的性质为:1、根节点至少有两个孩子2、每个非根节点有[⌈M/2⌉,M]个孩子;⌈M/2⌉向上取整3、每个非根节点有[⌈M/2⌉-1,M-1]个关键字,并且以升序排列4、key[i]和key[i+1]之间的孩子节点的值介于key[i]、key[i+1]之间‘5、所有的叶子节点都在原创 2016-07-22 22:03:48 · 329 阅读 · 0 评论 -
数据结构--------------AVLTree
一、AVLTree的概念在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文 "A原创 2016-07-25 16:24:52 · 246 阅读 · 0 评论 -
简易布隆过滤器
布隆过滤器 Bloom Filter一、原理如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间越来越大。同时检索速度也越来越慢。Bloom Filter 是一种空间效率很高的随机数据结构,Bloom filte原创 2016-07-25 18:55:17 · 558 阅读 · 0 评论 -
数据结构---------红黑树
一、红黑树 红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。 可以保证最长路径不超过最短路径的2倍,近似平衡。二、性质 性质1. 节点是红色或黑色。 性质2. 根节点是黑色。 性质3 每个叶节点(NIL节点,空节点)是黑色的。原创 2016-07-19 22:44:34 · 345 阅读 · 0 评论 -
数据结构---------二叉搜索树
一、二叉搜索树概念二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。搜索,插入,删除的复杂度等于树高,O(log(n)).二、操作原创 2016-07-21 11:08:55 · 355 阅读 · 0 评论 -
二叉树练习题
#pragma once#include#include#include#includeusing namespace std;enum PointerTag{THREAD,LINK}; //二叉树线索化需要的struct BinaryTreeNode{ BinaryTreeNode(int data) :_data(data) ,_left(NULL) ,_righ原创 2016-10-05 21:58:33 · 1216 阅读 · 0 评论