码迷,mamicode.com
首页 >  
搜索关键字:二叉    ( 13085个结果
二叉树基本操作:前序、中序、后序遍历(递归方式)
二叉树是最常见最重要的数据结构之一,它的定义如下: 二叉树(binary tree)是有限多个节点的集合,这个结合或者是空集,或者由一个根节点和两颗互不相交的、分别称为左子树和右子树的二叉树组成。 二叉树最基本的操作是遍历:一般约定遍历时左节点优先于右节点,这样根据根节点的遍历顺序可分为三种...
分类:其他好文   时间:2014-06-28 23:50:46    阅读次数:631
二叉树基本操作续一:二叉树建立、节点数统计
在上一篇:二叉树基本操作 中,我们描述了二叉树的递归遍历函数。在这里主要是给出这些函数的测试代码,为了测试更加方便,我们实现了三个新的函数:建立二叉树、统计二叉树叶子节点数量、统计二叉树总节点数量。(二叉树的定义用上篇文章中的定义) 二叉树建立: 1 tree_pointer create_b...
分类:其他好文   时间:2014-06-28 22:22:38    阅读次数:232
tree
几种树:(1)平衡树:package com.jp.algorithm.tree;import java.util.Iterator;import java.util.NoSuchElementException;/** * 平衡二叉树 * * 定义:首先它是一种特殊的二叉排序树,其次它的左子树和....
分类:其他好文   时间:2014-06-28 17:14:17    阅读次数:156
二叉树基本操作续二:前序、中序、后序遍历(非递归 迭代方式)
这里给出二叉树三种遍历方式的迭代实现代码。二叉树的递归实现使用系统栈入栈出栈,而非递归的迭代实现方法就是手动维护一个栈,来模拟递归的入栈出栈过程。 本文没有给出用户栈的代码,如果需要结合上篇的测试代码一起测试,则需要自己实现自己的栈,以及基本的pop、push等栈操作函数。 前序迭代遍历: ...
分类:其他好文   时间:2014-06-21 08:19:15    阅读次数:211
[LeetCode] Convert Sorted Array to Binary Search Tree
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-20 21:31:21    阅读次数:185
堆——神奇的优先队列(上)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。 符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为...
分类:其他好文   时间:2014-06-20 19:57:49    阅读次数:215
二叉排序树
1.二叉排序树的概念:二叉排序树是一种动态树表。 二叉排序树的定义:二叉排序树或者是一棵空树, 或者是一棵具有例如以下性质的二叉树: ⑴ 若它的左子树非空,则左子树上全部结点的值均小于根结点的值; ⑵ 若它的右子树非空,则右子树上全部结点的值均大于根结点的值; ⑶ 左、右子树本身又各是一棵二叉排序树...
分类:其他好文   时间:2014-06-20 19:47:29    阅读次数:225
【Algorithm】堆排序
堆是一种完全二叉树结构,并且其满足一种性质:父节点存储值大于(或小于)其孩子节点存储值,分别称为大顶堆、小顶堆。堆一般采用数组进行存储(从下标为0开始)。则父节点位置为i,那么其左孩子为2*i + 1,右孩子为2*i + 2。一. 算法描述 堆排序主要分为两个过程:建堆:先使长度为N数组形成一...
分类:其他好文   时间:2014-06-18 00:08:54    阅读次数:207
快速排序
排序思想:每次排序区间的第一个元素作为基准,把此区间内比基准大的元素放在基准右边,比基准小的元素放在基准左边。 性能分析:从空间复杂度方面,快速排序是递归的,每层递归调用时的指针和参数均要用栈来存放,递归调用次数与二叉树的深度一致。因此,在理想情况下,及每一趟排序都将记录序列均匀的分隔成长度接近的两个子序列,则需要栈空间为O(logn);在最坏情况下,即每趟排序之后,基准元素位置均偏向子序列的一...
分类:其他好文   时间:2014-06-17 21:55:05    阅读次数:201
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!