数据结构
文章平均质量分 78
imock
不要在最能吃苦的年龄选择安逸
展开
-
数据结构——栈的应用
当初学习数据结构只为了应付考试,只求不挂科,学的一塌糊涂,差不多能看懂,可是一说到动手如何去应用,就傻眼了,数据结构对程序猿编码的重要性也不要说了,大学的时候没好好学习,现在只有重新来过了,回想起来大学的生活,怎一个后悔了得啊 先来说说数据结构中的栈,由于栈结构具有“后进先出”的固有特性,致使栈成为程序设计中的有用工具。 栈的基本运算有六种:构造空栈:I原创 2015-03-15 21:40:51 · 930 阅读 · 0 评论 -
平衡二叉树的构造与实现
平衡二叉树简称平衡树,是由Adelson-Velskii和Landis于1962年首先提出的,所以又称为AVL树。若一棵二叉树的每个左右节点的高度差最多相差1,此二叉树即是平衡二叉树。把二叉树的每个节点的左子树减去右子树定义为该节点的平衡因子。二叉平衡树的平衡因子只能是1、0或者-1。 平衡二叉树是对二叉搜索树(又称为二叉排序树)的一种改进。二叉搜索树有一个缺点就是,树的结构是无原创 2015-03-27 09:02:26 · 8352 阅读 · 0 评论 -
哈夫曼树的构造以及编码实现
哈夫曼树的介绍Huffman Tree,中文名是哈夫曼树或霍夫曼树或者赫夫曼树,它是最优二叉树。定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 (01) 路径和路径长度定义:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路原创 2015-03-24 12:35:14 · 30270 阅读 · 1 评论 -
斐波那契查找算法解析
大家记不记得斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…….(从第三个数开始,后边每一个数都是前两个数的和),然后我们会发现,随着斐波那契数列的递增,前后两个数的比值会越来越接近0.618,利用这个特性,我们就可以将黄金比例运用到查找技术中。大家请看:斐波那契查找(Fibonacci Search):基于折半查找,对于mid的选择,使用斐原创 2015-03-24 21:03:29 · 1036 阅读 · 0 评论 -
希尔排序算法
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很原创 2015-04-03 12:05:06 · 508 阅读 · 0 评论 -
数据结构——关于KMP算法中next函数的详细解析
之前看到数据结构中字符串的模式匹配时,花了半天的时间,才把KMP算法中的next函数整明白了,结果过了几天在看到这时,只记得next[j+1]=next[j]+1,可是有时候能套公式正确算出,有时候就算不对,所以今天再重新理一遍思路,顺便记录下来,防止哪天脑子再短路了,又不知道怎么求解的了。 先看看next数据值的求解方法 位序 1 2 3 4原创 2015-03-19 20:49:10 · 34639 阅读 · 13 评论 -
数据结构——串的模式匹配算法
对于程序员来说,我们不仅是CV战士(经常使用ctrl + c,ctrl + v),还经常用到ctrl+F,用来快速查找到我们需要的信息。即就相当于一个字符串的定位问题。这种子串的定位操作通常称作串的模式匹配。 当然现在的方法都封装的非常完美,我们要在一个主串中为一个子串定位,简单的indexof方法足以实现。所以今天暂且撇开如何解决问题不说,我们去看一下匹配的原理。对于两个字符串原创 2015-04-11 00:21:08 · 1350 阅读 · 0 评论