数据结构
文章平均质量分 81
小小池鱼儿
这个作者很懒,什么都没留下…
展开
-
线性表之单链表
线性表零个或多个数据元素的有限序列,线性表中的元素是一对一的关系,除了第一个元素和最后一个元素外,其他元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。顺序存储结构指用一段地址连续的存储单元依次存储线性表的数据元素。 优点 - 无需为表示元素间的逻辑关系而增加额外的存储空间 - 随机查询元素,即查询元素的时间复杂度为O(1) 缺点 -原创 2017-12-24 16:29:07 · 160 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之平衡二叉树(AVL)及其C实现
大话数据结构学习笔记 - 查找之平衡二叉树(AVL)及其C实现平衡二叉树(AVL树)平衡二叉树(Self-Balancing Binary Search Tree 或Height-Balanced Binary Search Tree)是一种二叉排序树, 其中每一个节点的左子树和右子树的高度差至多等于1. 平衡二叉树是高度平衡的二叉排序树,高度平衡即要么是空树,要么其左子树和右子树都...原创 2018-06-10 15:29:00 · 603 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之二叉排序树(Binary Sort Tree)及其C实现
大话数据结构学习笔记 - 查找之二叉排序树(Binary Sort Tree)及其C实现二叉排序树二叉排序树(Binary Sort Tree):又称为 二叉查找树, 它或者是一个空树,或者是具有下列性质的二叉树若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值它的左、右子树也分别为二叉排序树二叉...原创 2018-06-09 16:38:02 · 454 阅读 · 0 评论 -
大话数据结构学习笔记 - 排序算法及图解以及C实现
大话数据结构学习笔记 - 排序算法及图解以及C实现概述排序概念 假设含有n个记录的序列为r1,r2,...,rnr1,r2,...,rn {r_{1}, r_{2}, ... , r_{n}} , 其相应的关键字分别为 k1,k2,...,knk1,k2,...,kn {k_{1}, k_{2}, ... , k_{n}} , 需确定1, 2, ... , n的一种排列 p1,...原创 2018-06-12 16:43:01 · 556 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之顺序查找、折半查找、插值查找及斐波那契查找
大话数据结构学习笔记 - 查找查找(Searching): 就是根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)概论概念查找表(Search Table):由同一类型的数据元素(或记录)构成的集合关键字(Key):数据元素中某个数据项的值,又称为键值,用来标识一个数据元素主关键字(Primary Key):若关键字可以唯一的标识一个记录,则...原创 2018-06-05 16:23:35 · 581 阅读 · 0 评论 -
大话数据结构学习笔记 - 图的最短路径之Floyd算法
大话数据结构学习笔记 - 图的最短路径之Floyd算法本文是对网结构最短路径的另一求法,上一节讲的为Dijkstra算法,本节将Floyd算法, 有关于最短路径的讲解也在上一节。Floyd算法算法简介弗洛伊德Floyd算法也是一种在给定的加权图中求最短路径的算法,求的所有顶点到所有顶点的时间复杂度为O(n3)O(n3)O(n^3), 是由1978年的图灵获得者、斯坦福大学计...原创 2018-06-04 20:10:30 · 875 阅读 · 1 评论 -
大话数据结构学习笔记 - 图的最短路径之Dijkstra算法
大话数据结构学习笔记 - 图的最短路径之Dijkstra算法最短路径最短路径是图中的重要问题,对于网图和非网图来说,最短路径的含义也是不同的。由于非网图没有边上的权值,所谓的最短路径,其实就是指两顶点之间经过的边数最少的路径。而对于网图来说,最短路径,是指两顶点之间经过的边上的权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点。当然非网图可以理解为所有边的权值都...原创 2018-06-04 20:09:29 · 1452 阅读 · 1 评论 -
大话数据结构学习笔记 - 图的最小生成树之Kruskal算法
大话数据结构学习笔记 - 图的最小生成树之Kruskal算法Kruskal算法克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法大话数据结构定义 假设 N=(V,{E})N=(V,{E}) N = (V, \{E\})是连通网,则令最小生成树的初始状态为只有n个顶点而无边的非连通图 T={V,{}}T={V,{}} T = \{V, \{\}\}。图中每...原创 2018-05-28 15:46:00 · 1970 阅读 · 0 评论 -
大话数据结构学习笔记 - 图的最小生成树之Prim算法
大话数据结构学习笔记 - 图的最小生成树之Prim算法最小生成树(Minimum Cost Spanning Tree) 即构造连通图的最小代价生成树Prim算法基本思想对于图G而言,V是所有顶点的集合。现在设置两个新的集合U和T, 其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。从所有u∈U,v∈(V−U)u∈U,v∈(V−U)u \in U, v \in ...原创 2018-05-28 10:19:36 · 3985 阅读 · 4 评论 -
大话数据结构学习笔记 - 图的遍历之深度优先遍历和广度优先遍历
大话数据结构学习笔记 - 图的遍历之深度优先遍历和广度优先遍历图的遍历(Traversing Graph):从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历深度优先遍历深度优先遍历介绍深度优先遍历(Depth First Search):也有称为深度优先搜索,简称为DFS。 思想: 从图中某个顶点v出发,访问此顶点,然后从v的未被访...原创 2018-05-28 10:15:10 · 1382 阅读 · 0 评论 -
大话数据结构学习笔记 - 线性表、顺序存储、单链表及静态链表
大话数据结构学习笔记之(3) - 线性表、顺序存储、单链表及静态链表定义线性表(List): 零个或多个数据元素的有限序列数学定义: 若将线性表记为(a1,...,ai−1,ai,ai+1,...,an)(a1,...,ai−1,ai,ai+1,...,an) (a_{1}, ..., a_{i-1}, a_{i}, a_{i+1}, ..., a_{n}), 则表中 ai−1ai−1...原创 2018-05-16 21:39:22 · 442 阅读 · 0 评论 -
大话数据结构学习笔记 - 图
大话数据结构学习笔记 - 图图的定义图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为: G(V,E)G(V,E) G(V, E) , 其中G表示一个图, V是图G中顶点的集合,E是图G中边的集合数据元素在线性表中被称为元素,在树中被称为结点,而在图中被称为顶点(Vertext)顶点集合V有穷非空 图中顶点之间的逻辑关系用边来表示,边集可以为空...原创 2018-05-22 22:41:35 · 459 阅读 · 0 评论 -
大话数据结构学习笔记 - 二叉树
大话数据结构学习笔记之(7) - 二叉树二叉树的定义二叉树(Binary Tree)是n(n≥0)n(n≥0)n (n \geq 0) 个结点的有限集合, 该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成二叉树特点特点每个结点最多有两棵子树,故不存在度大于2的结点左子树和右子树是有顺序的,次序不能任意...原创 2018-05-22 11:00:05 · 637 阅读 · 0 评论 -
大话数据结构学习笔记 - 树的基础知识
大话数据结构学习笔记之(6) - 树树的定义树(Tree)是 n(n≥0)n(n≥0) n (n \geq 0) 个结点的有限集。n=0n=0n = 0时称为空树。在任意一颗非空树中有且仅有一个特定的称为根(Root)的结点当 n>1n>1 n > 1时,其余结点可分为 m(m>0)m(m&原创 2018-05-22 10:47:52 · 492 阅读 · 0 评论 -
大话数据结构学习笔记 - 算法
大话数据结构学习笔记之(2) - 算法定义算法(Algorithm): 解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作算法的特性输入输出:算法具有零个或多个输入,至少有一个或多个输出有穷性: 指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。确定性: 算法的每一步骤都具有确定的含义,...原创 2018-05-14 18:57:15 · 170 阅读 · 0 评论 -
大话数据结构学习笔记 - 数据结构绪论
大话数据结构学习笔记之(1) - 数据结构绪论概念数据结构:相互之间存在一种或多种特定关系的数据元素的集合数据: 是面熟客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型数据元素: 是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。...原创 2018-05-14 16:12:58 · 222 阅读 · 0 评论 -
大话数据结构学习笔记 - 栈与队列
大话数据结构学习笔记之(4) - 栈与队列栈栈是限定尽在表尾进行插入和删除操作的线性表。 允许插入和删除的一端称为栈顶(top), 另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构栈是线性表,即具有线性关系,只不过它是一种特殊的线性表,特殊之处在于插入被限制在栈顶, 而删除位置被限制在栈...原创 2018-05-18 22:56:06 · 499 阅读 · 0 评论 -
线性表之顺序存储结构
线性表零个或多个数据元素的有限序列,线性表中的元素是一对一的关系,除了第一个元素和最后一个元素外,其他元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。线性表的顺序存储结构线性表的顺序存储结构是指将线性表中的元素存放在一组连续的存储单元中,特点是线性表中逻辑相邻的元素,物理存储单元中也是相邻的。顺序表是采用顺序存储结构的线性表。基本操作...原创 2017-12-24 20:33:14 · 899 阅读 · 0 评论 -
大话数据结构学习笔记 - 查找之散列表查找(哈希表)及C实现
大话数据结构学习笔记 - 查找之散列表查找(哈希表)及C实现概述顺序表查找时,可以使用 ===或 ≠≠\neq 来遍历比较元素与查找值,有相等则查找成功; 有序表查找时, 可以使用<<>>>, 来折半查找,相等时则查找成功. 最终得到元素的存储位置, 但有没有直接通过关键字key得到要查找的记录内存存储位置呢?散列技术是在记录的存储位置和它的关键字之间建立一个...原创 2018-06-10 19:45:19 · 568 阅读 · 0 评论