
【数据结构】
文章平均质量分 64
雪飞静
左手边在冒险,右手边在蜕变。
展开
-
线性结构
线性结构为一对一的关系,类比于一对多的非线性结构,也可从前继与后继角度考虑。常用的线性结构有:线性表,栈,队列,循环队列,数组。线性表中包括顺序表、链表等,其中,栈和队列只是属于逻辑上的概念,实际中不存在,仅仅是一种思想,一种理念;线性表则是在内存中数据的一种组织、存储的方式。 顺序表顺序表将元素一个接一个的存入一组连续的存储单元中,在内存物理上是连续的。如下图:顺序表存储密原创 2015-12-14 14:22:25 · 800 阅读 · 0 评论 -
java链表之--双向循环链表
在单链表中,查询下一个元素的时间是O(1)。查询上一个元素的时间却是O(n)。为了克服这种缺点,有了双向链表----继而为了更加高效-----双向循环链表此外引用不知哪位大神的一句话:判断数据结构使用如果你要把数据集合看成一个环,可以顺时针走,也可以逆时针走,那你就可以用双向循环链表来描述如果你要把数据集合看成一条链,可以双向遍历,那你就可以用双向链表来描述如果你要原创 2016-07-06 16:01:16 · 4496 阅读 · 0 评论 -
java链表之--java双向链表的增删改查
单向链表只能从一个方向遍历链表,即只能查找结点的下一个结点(后继结点),而不能查找结点的上一个结点(前驱结点)。鉴于上述问题,引入了双向链表。由于双向循环链表包含双向链表的所有功能操作。因此,我们只讲述双向循环链表。与单向链表不同,双向链表的结点构造如下图所示。即一个结点由三个部分组成,数据域DATA,左指针域pre和右指针域next。其中,数据域用来存放结点数据信息,左指针域用来指向前驱原创 2016-07-06 15:27:06 · 1563 阅读 · 0 评论 -
java链表之--单向链表的增删改查
结果:原链表:A-->B-->C-->D查找节点:B查找结果:找到!删除节点:B删除节点后的链表:A-->C-->D原创 2016-07-06 15:06:54 · 948 阅读 · 0 评论 -
java数据结构汇总1
import java.util.Hashtable;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.LinkedHashMap;import java.util.LinkedHashSet;import java.util.Linke转载 2016-07-06 17:32:04 · 369 阅读 · 0 评论 -
数据结构之---树
作者:egg邮箱:xtfggef@gmail.com微博:http://weibo.com/xtfggef博客:http://blog.youkuaiyun.com/zhangerqing(转载请说明出处)我们接着上一篇数据结构继续讲解。本章系数据结构之树与二叉树,从这章开始,我们就要介绍非线性结构了,这些内容理解起来比线性表稍难一些,我尽量写的通俗一些,如果读的过程中有任何问转载 2016-07-06 19:08:58 · 520 阅读 · 0 评论 -
java之collection总结
java.util。线性表,链表,哈希表是常用的数据结构Collection主要方法:boolean add(Object o)添加对象到集合boolean remove(Object o)删除指定的对象int size()返回当前集合中元素的数量boolean contains(Object o)查找集合中是否有指定的对象boolean isEmpty()判断集合原创 2016-07-06 17:12:58 · 6821 阅读 · 0 评论 -
SQL索引问题
from http://www.cnblogs.com/lixiaolun/p/5058304.html数据库索引的存储结构一般是B+树,为什么不适用红黑树等普通的二叉树?经过和同学的讨论,得到如下几个情况: 1. 数据库文件是放在硬盘上,每次读取数据库都需要在磁盘上搜索,因此需要考虑磁盘寻道时间,我们都知道磁盘寻道开销是非常大的。同时,索引一般也是非常大的,内存不能转载 2016-07-07 21:01:41 · 778 阅读 · 0 评论 -
二叉树java笔试操作总结
import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Queue;import java.util.Stack;/**z转自:点击打开链接 http://blog.youkuaiyun.com/luckyxi转载 2016-07-09 13:18:39 · 881 阅读 · 0 评论 -
Java原生排序方法总结--HashMap排序
import:java.util.Arrays; java.util.Comparator一、Arrays.sort()对基本类型排序(应该不是最优) 其中主要分为Primitive(8种基本类型)和Object两大类。 基本类型:采用调优的快速排序; 对象类型:采用改进的归并排序。二.Comparat原创 2016-07-12 11:05:38 · 7061 阅读 · 0 评论 -
AVL树、红黑树
from:http://blog.youkuaiyun.com/liyong199012/article/details/29219261在计算机科学中,AVL树是最先发明的自平衡二叉查找树。AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文 "An algorithm for the organization of informa转载 2016-07-07 19:31:46 · 1568 阅读 · 0 评论 -
java链表之--单向循环链表
单向链表: http://blog.youkuaiyun.com/basycia/article/details/51839045java链表单向循环链表区别之前的单向链表在于判断结束的代码while(temp.next!=null){ temp=temp.next;}//在循环链表中while(temp.next!=header){ temp=temp.next原创 2016-07-06 15:34:39 · 889 阅读 · 0 评论 -
hash实例讲解
from http://blog.jobbole.com/49229/说明:本文分为三部分内容,第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。第一部分:Top K 算法详解问题描述百度面试题:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-2转载 2016-07-11 16:33:27 · 16803 阅读 · 0 评论 -
广义表
1.定义 广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。(1)广义表常用表示 ① E=() E原创 2016-02-29 20:11:07 · 574 阅读 · 0 评论 -
广义表的前世今生
总述:广义表(Lists,又称列表)是一种非线性的数据结构,是线性表的一种推广。即广义表中放松对表元素的原子限制,容许它们具有其自身结构。它被广泛的应用于人工智能等领域的表处理语言LISP语言中。在LISP语言中,广义表是一种最基本的数据结构,就连LISP 语言的程序也表示为一系列的广义表。官方定义:广义表是n(n≥0)个元素a1,a2,…,ai,…,an的有限序列。 其中:原创 2015-12-14 11:12:02 · 500 阅读 · 0 评论 -
哈希表那些事
1官方定义:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,原创 2015-12-14 11:24:02 · 549 阅读 · 0 评论 -
各种数据结构的访问优缺点
1.vector 底层数据结构为数组 ,支持快速随机访问2.list 底层数据结构为双向链表,支持快速增删3.deque 底层数据结构为一个中央控制器和多个缓冲区,详细见STL源码剖析P146,支持首尾(中间不能)快速增删,也支持随机访问4.stack 底层一般用23实现,封闭头部即可,不用vector的原因应该是容量大小有限制,扩容耗时5.queu原创 2015-12-14 21:26:45 · 1690 阅读 · 0 评论 -
hello world解析执行过程
开篇学习任何一门编程语言,都会从hello world 开始。对于一门从未接触过的语言,在短时间内我们都能用这种语言写出它的hello world。然而,对于hello world 这个简单程序的内部运行机制,我相信还有很多人都不是很清楚。hello world 这些信息是如何通显示器过显示的?cpu执行的代码和程序中我们写的的代码肯定不一样,她是什么样子的?又是如何从我们写的代码转载 2015-12-25 16:41:11 · 2965 阅读 · 0 评论 -
栈具有记忆功能介绍
栈先进后出。最先进去的数肯定是最后出来的 所以说有记忆功能。比如我们往一个很窄的瓶子里放1,2,3,4号球。最先拿出来的事4号,最后是1号。好像记住了位置所以顺序调换一样,所以说栈具有记忆功能。栈的模型就是这样的。 队列这种数据结构 是先进先去,就像我们平时排队 你先去排队,就站在队列的最前面 如果进行出队操作,最先的元素就出队 没有了,无法有记忆作用。栈是相反 在前面的后出来,就具有了记忆作原创 2016-01-11 21:41:24 · 4709 阅读 · 1 评论 -
数组地址计算总结
A[5][6][7]----------A[0][0][0]-----------A[4][3][2] 1100 ?每个元素占俩个存储单元行优先----xyz,先存储z----再y-----再xA[0]-------------A[3] 4*6*7*2A原创 2016-01-11 21:56:42 · 815 阅读 · 0 评论 -
字符串有结束符\0
字符串有结束符\0,长度比相应的数组长!!!!原创 2016-01-11 22:01:09 · 618 阅读 · 0 评论 -
数据结构知识点总结1
数据是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号(数值、字符等)的集合。数据元素(数据成员)是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、记录等数据对象具有相同性质的数据元素(数据成员)的集合数据结构由某一数据对象及该对象中所有数据成员之间的关系组成。记为Data_Structure = {D, R}其中,D是某一原创 2016-01-11 22:08:42 · 1306 阅读 · 0 评论 -
数据结构总结2
数据结构知识点总结整理0、常考基础必知必会A. 排序:排序有几种,各种排序的比较,哪些排序是稳定的,快排的算法;B. 查找:哈希查找、二叉树查找、折半查找的对比,哈希映射和哈希表的区别?C. 链表和数组的区别,在什么情况下用链表什么情况下用数组?D. 栈和队列的区别?E. 多态,举例说明;overload 和 override 的区别?F. 字符串有关的函数,比如让你写原创 2016-01-11 22:15:33 · 1099 阅读 · 0 评论 -
字符串逆转的方法
字符串逆转,就是将一个字符串头尾倒置,变成一个新的字符串如:abcdefg -> gfedcbabbcaa -> aacbb逆转字符串可以在线性时间内完成,所需时间与字符串长度成正比。逆转的方法很简单,只需要遍历一半字符串,并将对应位置上的字符对换即可。字符串中的字符对应一个正整数,因此下面的三种方法都是利用了变换两个整型变量的思想。1、利用最简单的交换原创 2016-02-26 09:34:00 · 1522 阅读 · 0 评论 -
哈夫曼编码(基于哈夫曼树-最优二叉树,不唯一)、B树(b-树)、B+树
整合自:http://blog.youkuaiyun.com/shuangde800/article/details/7341289http://www.cnblogs.com/Jezze/archive/2011/12/23/2299884.htmlhttp://blog.youkuaiyun.com/jdhanhua/article/details/66210261.定义:什么转载 2016-07-24 20:02:48 · 16109 阅读 · 3 评论