
Data Structure
文章平均质量分 64
No Silver Bullet
业精于勤荒于嬉,行成于思毁于随。
学业由于勤奋而专精,由于玩乐而荒废;德行由于独立思考而有所成就,由于因循随俗而败坏。
——出自(唐)韩愈《进学解》
展开
-
数据结构进阶(一)稀疏矩阵
稀疏矩阵一、稀疏矩阵的定义 对于那些零元素数目远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称为稀疏矩阵(sparse)。 人们无法给出稀疏矩阵的确切定义,一般都只是凭个人的直觉来理解这个概念,即矩阵中非零元素的个数远远小于矩阵元素的总数,并且非零元素没有分布规律。二、稀疏矩阵的压缩存储 由于稀疏矩阵中非零元素较少,零元素较多,因此可以采用只存储非零元素的方法原创 2016-05-02 16:19:17 · 64029 阅读 · 2 评论 -
数据结构进阶(二)矩阵(稀疏矩阵)的压缩存储
矩阵(稀疏矩阵)的压缩存储注 本文转载地址:http://blog.163.com/zhoumhan_0351/blog/static/39954227201001112526244/ 为了节省存储空间并且加快处理速度,需要对这类矩阵进行压缩存储,压缩存储的原则是:不重复存储相同元素;不存储零值元素。一、相关概念㈠特殊矩阵 矩阵中存在大多数值相同的元,或非0元,且在矩...原创 2016-05-02 16:29:27 · 66848 阅读 · 0 评论 -
数据结构进阶(三)数据结构之树的遍历
数据结构进阶(三)数据结构之树的遍历前言 先序:父、左、右 后序:左、右、父 中序:左、中、右 层序:若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。美文美图原创 2016-07-29 08:50:25 · 44312 阅读 · 2 评论 -
数据结构进阶(四)二叉排序树(二叉查找树)
二叉排序树(二叉查找树)--查找 注:构造一棵二叉排序树的目的,其实并不是为了排序(中序遍历),而是为了提高查找、插入、删除关键字的速度。定义 二叉排序树又叫二叉查找树,英文名称是:Binary Sort Tree.BST的定义就不详细说了,我用一句话概括:左 二叉查找树是满足以下条件的二叉树: 1.左子树上的所有节点值均小于根节点值; 2.右子树上的所有节点值均不...原创 2016-09-12 20:45:45 · 46117 阅读 · 2 评论 -
剑指Offer——Trie树(字典树)
剑指Offer——Trie树(字典树)Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。原创 2016-09-07 21:21:30 · 55954 阅读 · 4 评论 -
剑指Offer——二叉树
剑指Offer——二叉树前言 数据结构通常是编程面试中考察的重点。在参加面试之前,应聘者需要熟练掌握链表、树、栈、队列和哈希表等数据结构,以及它们的操作。本片博文主要讲解二叉树操作的相关知识,主要包括二叉树的建立、遍历方法的循环和递归写法。 二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及原创 2016-08-07 16:29:10 · 44157 阅读 · 0 评论 -
剑指Offer——栈的java实现和栈的应用举例
剑指Offer——栈的java实现和栈的应用举例 栈是一种先进后出的数据结构, 栈的实现如下: 首先定义了栈需要实现的接口:public interface MyStack { /** * 判断栈是否为空 */ boolean isEmpty(); /** * 清空栈 */ void clear()...原创 2016-08-07 16:13:48 · 45702 阅读 · 3 评论 -
剑指Offer--图的操作
剑指Offer–图的操作前言 企业笔试过程中会涉及到数据结构的方方面面,现将有关图的深度优先搜索与广度优先搜索进行整理归纳,方便日后查阅。 在已做过的笔试题目中,可用DFS解决的题目有:“地牢逃脱”–网易“遍历最短路径长度”–携程“小青蛙走迷宫”–滴滴 三道题目都是DFS的经典应用,主要采用递归+回溯的方式。 下面主要讲解一下DFS与BFS的具体实现。深度优先搜索(DFS)...原创 2016-09-21 11:18:56 · 44745 阅读 · 0 评论