
数据结构
大神,快来碗里
专注于Java相关技术
展开
-
数据结构(1)绪论
基本概念&术语:数据结构是相互之间存在一种或多种特定关系的数据元素集合。数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等问题的学科。数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。数据...原创 2019-05-08 22:53:08 · 10716 阅读 · 0 评论 -
数据结构(9) 树[三]( 二叉树存储结构 )
数据结构——二叉树的存储结构之前已经谈过了树的存储结构,并且说到顺序存储对树这一种一对多的关系的结构实现起来比较困难。但是二叉树是一种特殊的树,由于它的特殊性,使得用顺序存储结构也可以实现。二叉树的顺序存储结构二叉树的顺序存储结构就是用一维数组存储二叉树中的结点,并且结点的存储位置,也就是数组的下标,要能体现结点之间的逻辑关系,如双亲与孩子的关系,左右兄弟的关系等。先来看完全二叉树的顺序存...原创 2019-05-08 23:06:05 · 10605 阅读 · 0 评论 -
数据结构(8) 树[二]( 二叉树以及性质)
二叉树定义二叉树:是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。如下图就是一个二叉树:二叉树特点二叉树的特点有:每个结点最多两个子树,所以二叉树中不存在度大于2的结点。注意不是只有两棵子树,而是最多有。没有子树或者有一棵子树都是可以的。左子树和右子树是有顺序的,次序不能任意颠倒...原创 2019-05-08 23:04:54 · 10624 阅读 · 0 评论 -
数据结构(7) 树[一](基本知识与存储方式)
树的定义之前一直介绍的是一对一的线性结构,可现实中还有多一对多的情况需要处理,这就是今天要介绍的一对多的数据结构——树。树(Tree):是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:有且仅有一个特定的称为根(Root)的结点;当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、···、Tm,其中每一个集合本身又是一颗树,并且称为根...原创 2019-05-08 23:03:44 · 10477 阅读 · 0 评论 -
数据结构(6) 串 [二] ( KMP模式匹配算法 )
KMP模式匹配算法 (朴素算法的升级版本)原理:主串 S: “abcdefgab”找到 子串T “abcdex” 的位置如果采用朴素算法,前5个字母,两个串完全相等,直到第6个字母,"f"与“x”不等,如图如图,按照朴素模式匹配算法,应该是如图②③④⑤⑥。即主串S中当i = 2,3,4,5,6时,首字符与子串T的首字符俊不等。仔细观察,子串T “abcdex” 首字母“a”与后面...原创 2019-05-08 23:02:09 · 10906 阅读 · 0 评论 -
数据结构(5) 串 [一] (定义 & 朴素的模式匹配算法)
串的定义:是由零个或多个字符组成的有限序列,又叫字符串。一般记为 s=“a1a2a3…an"(n>=0),其中,s是字符串的名称,用双引号括起来的字符序列是串的值,注意引号不属于串的内容。ai可以是字母、数字或者其他字符,i是该字符在串中的位置。串中的字符数目n称为串的长度,定义中谈到的有限是指长度n是一个有限的数值。零个字符的串称为空串,它的长度为0,可以直接用两个双引号表示,所谓序列...原创 2019-05-08 23:00:40 · 10526 阅读 · 0 评论 -
数据结构(4) 栈与队列
栈(stack):是限定仅在表尾进行插入和删除操作的线性表。队列(Queue):是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。定义栈(stack):是限定仅在表尾进行插入和删除操作的线性表。我们允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称作后进先出(Last In First Out)的线性表。**这里应该注...原创 2019-05-08 22:58:55 · 10584 阅读 · 0 评论 -
数据结构(3) 线性表
线性表(List):零个或多个数据元素的有限序列线性表,从名字上可以感觉到,是具有像线一样的性质的表。注意;首先它是一个序列。也就是说,元素之间是有序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素有且只有一个前驱和后继。线性表强调有限,元素个数是有限的。其结构如下图:线性表元素的个数n(n≥0)定义为线性表的长度,当n=0时,称为空表。在非空表中的每个...原创 2019-05-08 22:57:32 · 11212 阅读 · 0 评论 -
数据结构(2) 算法
算法定义: 解决特性问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法具有五个基本特性。输入算法具有零个或多个输入输出算法至少有一个或多个输出有穷性算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且一个步骤在可接受的时间内完成。确定性算法的每一个步骤都具有确定的含义,不会出现二义性。可...原创 2019-05-08 22:55:58 · 10554 阅读 · 0 评论 -
数据结构(10) 树[四]( 二叉树遍历)
二叉树遍历原理二叉树的遍历:是指从根结点出发,按照某种次序依次访问二叉树中的所有结点,使得每个结点被访问一次且仅被访问一次。这里有两个关键词:访问和次序。访问其实是要根据实际的需要来确定具体做什么,比如对每个结点进行相关计算,输出打印等。它算作是一个抽象操作。二叉树的遍历次序不同于线性结构,最多也就是从头到尾、循环和双向等简单的遍历方式。树的结点之间不存在唯一的前驱和后继关系,在访问一个结...原创 2019-05-08 23:07:32 · 10182 阅读 · 0 评论