最新文章列表

[数据结构]平衡二叉树的旋转

平衡二叉树(Balanced binary tree)是由Adelson-velskii 和Landis于1962年提出的,所以又称为AVL树。 先来看定义: 1. 它是一颗空树,或者:2、32. 它的左右两个 ...
huntfor 评论(0) 有4607人浏览 2014-05-02 21:14

Java 8:HashMap的性能提升

HashMap<K, V>是一个高效通用的数据结构,它在每一个Java程序中都随处可见。先来介绍些基础知识。你可能也知道,HashMap使用key的hashCode()和equals()方法来将值划分到不同的桶里。桶的数量通常要比map中的记录的数量要稍大,这样每个桶包括的值会比较少(最好是一个)。当通过key进行查找时,我们可以在常数时间内迅速定位到某个桶(使用hashCode()对桶 ...
deepinmind 评论(7) 有3699人浏览 2014-04-24 09:08

一般树和二叉树的转换,森林一搬树的转换

一般树和二叉树的转换: 就是将森林用二叉树的方式来存储,将所有节点都看成只有两个指针域的节点,son和next节点,son节点指向它的左边第一个节点,next指向它的兄弟节点。到此为止形成的就是一颗二叉树。 也可以通过以下方式来转换:首先将同一双亲的兄弟节点从左至右地连接起来,然后将双亲节点的孩子节点的分支中,除与长子节点的分值保留外,其他的全部去掉,最后将兄弟相连的横线旋转45° 一般树转换成二 ...
超超超哥2010 评论(0) 有1809人浏览 2014-04-07 15:00

java

  哈夫曼树又称最优二叉树,即WPL(树中所有叶子结点的带权路径长度之和)。         给定n个权值集合W构造n棵二叉树的集合F:    构建方式如下:    (1)把所有权值按从小到大的顺序排列,权值最小的作为根结点,其左右子数为空    (2)在F中找出两颗根结点权值最小的数作为左右子数构造新的二叉树, 新的二叉树权值为左右子树结点权值之和    (3)将新的二叉树加入到F中,再和剩余权 ...
19941021 评论(0) 有530人浏览 2014-03-19 21:00

python实现二叉查找树

这次用完成的是二叉树,是一种简单的树型结构。同样使用python实现 多的不说了,上代码吧。 # -*- coding: cp936 -*- #--------------------------------------------- # # author chile ...
lanqiu17 评论(0) 有2256人浏览 2014-02-18 13:03

java之浅谈数据结构

  Java之浅谈数据结构         数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。      上边应该算是比较官方的解释了,具体定义姑且不论,今天主要谈一谈队列,链表和二叉树。其中队列又制作了泛型的版本,在此仅供参考。文中 ...
sxyplibo 评论(0) 有1160人浏览 2013-11-30 23:07

哈夫曼编码

 哈弗曼编码几乎是所有压缩算法的基础,其实这个算法并不复杂,简单的理解就是,如何用更短的bit来编码数据。     我们知道普通的编码都是定长的,比如常用的ASCII编码,每个字符都是8个bit: 字符编码 A 00101001 B 00101010 C 00101011 … …    这样,计算机就能很方便的把由0和1组成的数据流解析成原始信息,但我们 ...
什么世道 评论(0) 有1437人浏览 2013-10-11 18:30

Netjava project 压缩的实现(1)——哈夫曼树

我们都用过压缩软件,今天我们要讲的就是压缩软件的一种方法——哈夫曼树! 哈夫曼树其实是二叉树的一种。我们给定一些权值作为二叉树的叶子节点,来构建一个二叉树,若带权路径长度达到最小,这样的二叉树成为最优二叉树,也就是我们说的哈夫曼树。我们今天不仅要构建一个哈夫曼树,还要实现压缩一个字符串,让字符串以更短的方式表现出来。   准备工作:进行节点和编码类的设置。Node类: public cl ...
felixour 评论(0) 有1014人浏览 2013-08-09 01:22

平衡二叉树的java实现

平衡二叉树求解步骤: (1)插入节点 (2)找出不平衡因子,在插入过程中找到不平衡因子 (3)旋转,根据不平衡因子判断旋转方式 (4)生成新的平衡二叉树 在求解过程中,最重要步骤详解: 找出不平衡因子(也就是左右子树的高度差值为2或-2的情况) 方法1步骤:a.节点中添加两个属性,左子树高度、右子树高度。b.插入节点c.返回的过程中动态的计算插入节点过程中经过的节点的左子树或右子树的高度。并计算各 ...
sudongfeng 评论(0) 有999人浏览 2013-07-19 11:36

算法——二叉树基础遍历与排序

1.二叉树,一种递归的数据结构,一棵非空的二叉树由根节点以及左右子树组成。 且看图:   在任一给定结点上,可以按某种次序执行三个操作:      1)访问结点本身(N)    2)遍历该结点的左子树(L)    3)遍历该结点的右子树(R) 因此根据这三种操作的先后次序,可分为:   a)NLR 前序遍历  (PreorderTraversal亦称(先序遍历))——访问根结点 ...
oham_一1一 评论(0) 有1620人浏览 2013-07-09 22:16

已知一个二叉树的前序、中序遍历求其后续遍历 Java代码实现

如题,好像大学的课后作业。写一个练练手。网上不少,大多都是C或C++的。   一个二叉树前序遍历:GDAFEMHZ                   中序遍历:ADEFGHMZ 求其后续遍历。   求解过程 0.这三种遍历不知道是什么意思的请自行搜索。 1.通过前序遍历我们可知此树根节点为G(即前序遍历第一个字符) 2.观测中序遍历可知此树左子树所有节点为:ADEF  右子树 ...
chenghao1994 评论(0) 有2419人浏览 2013-04-08 20:25

二叉树(Binary Tree)

二叉树 在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构。二叉树是每个节 ...
darrenzhu 评论(0) 有1577人浏览 2012-12-23 12:35

Java遍历二叉树各种方式(code)

同样是大伙面试时碰上几率比较高的一套类型题,跟数据结构相关的东西永远是核心... 废话不多说 直接上代码 /** * @author luochengcheng * 定义二叉树 */ class Node { private char key; private Node left, right; public Node(char key) { this(key, ...
Poly 评论(0) 有1437人浏览 2012-12-14 23:10

数据结构与算法——二叉树遍历

首先定义一个二叉树结构如下   class BNode{ private String name; private BNode left,right; public String getName() { return name; } public void setName(String name) { this.name = name; } ...
ciaos 评论(0) 有817人浏览 2012-11-02 08:24

二叉树的遍历 中序 后序 先序 递归 非递归

先序遍历结果:- + a * - b c d / e f  中序遍历结果:a + b - c * d - e / f  后序遍历结果:a b c - d * + e f / -  层次遍历结果:- + / a * e f - d b c    package lengr ...
lengreen1221 评论(0) 有1142人浏览 2012-10-10 17:23

二叉树遍历 前序遍历 后序遍历 中序遍历 非递归前序遍历

#include<iostream> using namespace std; /** 二叉树的遍历:前序,后序,中序 二叉树的非递归遍历:前序,后序,中序 参考文献:http://topic.csdn.net/t/20060802/17/4922659.html ***/ typedef struct BiTNode { char data; struct BiTNode  *l ...
wisgood 评论(0) 有1182人浏览 2012-10-07 14:27

使用 Java 遍历二叉树

在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有个结点;深度为k的二叉树至多有
as619864232 评论(0) 有1332人浏览 2012-10-03 20:09

Java模拟二叉树实现

      二叉树的概念不说了,搜索引擎比我说的更加清楚和完整。       下面的例子允许将各种java.lang.Comparable<T>的子类作为节点元素被添加到二叉树结构当中,并依据二叉树的中序遍历的方式将二叉树结构当中所有元素输出。       二叉树结构的Java实现类   package org.tang.binarytree; public cla ...
Will_Turner 评论(0) 有2150人浏览 2012-10-02 15:12

二叉树的遍历

  用递归和非递归的方法遍历二叉树. 先建立一个二叉树: 代码如下:     static class Node { Node left; Node right; String value; public Node(String value, Node left, Node right){ this.value = value; thi ...
leichenlei 评论(0) 有987人浏览 2012-09-25 15:01

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics