数据结构
文章平均质量分 92
巧克力code
知识浅薄的IT小仔,通过Blog记录我的学习历程。其中难免会出现很多的错误,希望大家给与批评和指正。
展开
-
算法——查找
优点:无需判断是否越界,效率更高用来描述折半查找过程的二叉树,称为判定树树中每个圆形结点表示一个记录,结点中的值为该记录的关键字值;树中最下面的叶结点都是方形的,它表示查找不成功的情况。从判定树可以看出,查找成功时的查找长度为从根结点到目的结点的路径上的结点数,而查找不成功时的查找长度为从根结点到对应失败结点的父结点的路径上的结点数;每个结点值均大于其左子结点值,且均小于于其右子结点值每次调整的对象都是最小不平衡子树,即以插入路径上离插入结点最近的平衡因子的绝对值大于1的结点作为根的子树。原创 2022-09-01 20:07:49 · 1121 阅读 · 1 评论 -
数据结构——非线性结构(图)
如果本身就是连通图,则本身就是其连通分量,而非连通图的各个连通图作为其组成部分均为其连通分量强连通图:任意顶点出发可以到达其余任意节点假设一个图有n个节点,如果边数小于n-1,那么此图必是非连通图一个图有n个顶点,并且有大于n-1条边,则此图一定有环顶点不分大小、主次,所以用一个一维数组存储图中顶点的信息边或弧由于是顶点之间的关系,用一个二维数组存储图中边的信息(这个二维数组称为邻接矩阵)性质1:是有向图的一种链式存储结构:将邻接表和逆邻接表整合在一起邻接多重表是无向图的另一种链式存储结构。........原创 2022-08-26 20:47:44 · 5677 阅读 · 0 评论 -
数据结构——非线性结构(树与二叉树)
1)有且只有一个称为根的节点2)有若干个互不相交的子树,这些子树本身也是一棵树(递归定义)1)树是由节点和边组成2)每个节点只有一个父节点但可以有多个子节点3)但有一个节点除外,该节点没有父节点,此节点称为根节点(n个节点的树中有n-1条边)后序遍历左子树后序遍历右子树再访问根节点递归遍历左右子树顺序是固定的,只是访问根的顺序不同。时间复杂度O(n):因为不管采用哪种遍历算法,每个节点都访问一次。原创 2022-08-20 19:46:11 · 3179 阅读 · 0 评论 -
数据结构——线性结构的常见应用(串)
文章目录一. 思维导图二. 串的概述1. 串(字符串/string)定义2. 串与线性表的对比三. 串的存储结构1. 定长顺序存储表示2. 堆分配存储表示3. 块链存储表示四. 串的模式匹配1. 定义2. 模式匹配的算法(1). 暴力匹配算法(2). KMP算法一. 思维导图二. 串的概述1. 串(字符串/string)定义来源:计算机上非数值处理的对象基本都是字符串数据定义字符串是由零个或多个字符组成的有限序列串是内容限制为字符数据的线性表一般记为:什么是子串?串中任意多个原创 2021-10-29 17:16:27 · 634 阅读 · 0 评论 -
数据结构——线性结构的常见应用(数组)
文章目录一. 思维导图二. 数组的概述1. 定义2. 数组和线性表关系三. 数组的存储结构1. 一维数组存储结构关系2. 多维数组存储结构关系(1). 按行优先(2). 按列优先四. 特殊矩阵的压缩存储1. 概述2. 分类(1). 对称矩阵(2). 三角矩阵(3). 三对角矩阵(4). 稀疏矩阵一. 思维导图二. 数组的概述1. 定义由n个相同类型的数据元素构成有限序列,每个数据元素称为一个数组元素,数据元素在数组中的序号称为该元素下标,下标范围称为维界 [0,n-1]2. 数组和线性表关系原创 2021-10-29 16:24:38 · 1034 阅读 · 0 评论 -
数据结构——线性结构的常见应用(队列)
文章目录一. 思维导图二. 队列的概念1. 定义2. 分类(1). 顺序队列(2). 链式队列一. 思维导图二. 队列的概念1. 定义队列(queue)只允许在表的一段进行插入,在表的另一端进行删除或者说是一种可以实现“先进先出”的存储结构队列是一种操作受限的线性表2. 分类(1). 顺序队列用数组实现(2). 链式队列用链表实现...............原创 2021-10-29 15:25:06 · 1075 阅读 · 0 评论 -
数据结构——线性结构的常见应用(栈)
文章目录一. 思维导图二. 栈的概念1. 定义2. 栈的内存分配3. 栈的分类(1). 顺序栈(静态栈)(2). 链栈(动态栈)三. 栈的存储结构1. 顺序栈(1). 定义(2). 顺序栈的数据结构表示(3). 顺序栈的基本操作(4). 顺序栈的特例(共享栈)2. 链栈(1). 定义(2). 链栈数据结构表示(3). 链栈算法的操作四. 栈的应用1. 函数调用2. 中断3. 表达式求值4. 缓冲处理5. 走迷宫一. 思维导图二. 栈的概念1. 定义栈(stack)只允许在一端进行插入和删除操作的原创 2021-10-29 15:24:44 · 810 阅读 · 0 评论 -
数据结构——线性结构(线性表)
定义把所有的结点用一根直线穿起来详细定义线性表是具有相同数据类型的n(n≥0)个数据元素的有限序列,其中n为表长,n=0是一个空表。用L表示线性表a1是唯一的第一个数据元素,又称表头元素;an是唯一的最后一个元素,又叫表尾元素。除了第一个元素之外,每个元素有且仅有一个直接前驱。除了最后一个元素外,每个元素有且仅有一个直接后继。n个节点离散分配彼此通过指针相连每个节点只有一个前驱节点,每个节点只有一个后续节点首节点没有前驱节点,尾节点没有后续节点从某种角度而言。............原创 2021-10-24 21:57:30 · 14519 阅读 · 0 评论 -
数据结构——学习线性表的预备知识
文章目录一. 指针1.引例2. 指针的重要性3. 指针的定义(1). 内存的基本概念(2). 软件运行与内存关系(垃圾数据)4. 基本类型指针5. 指针和数组(1). 指针和下标的关系(2). 通过指针修改数组的值(3). 一个指针变量占几个字节(4). 指针和变量的地址关系6. 指针和函数7. 结构体8. 动态内存分配和释放一. 指针1.引例# include <stdio.h>int main(void){ int * p; int i = 10; int j; p =原创 2021-05-31 20:07:17 · 306 阅读 · 0 评论 -
数据结构——概述
随着计算机的发展,计算机不再局限于科学计算,而更多用于控制、管理、数据处理等非数值计算的处理工作那什么是数据结构呢?一般来说,计算机解决一个具体问题时的步骤:例如:2. 数据结构与算法的理解我们如何把现实中大量而复杂的问题以特定的数据类型(个体)和特定的存储结构(个体的关系)保存到主存储器(内存)中,。数据结构 = 个体 + 个体的关系(两者的存储问题)算法 = 对存储数据的操作简..................原创 2020-07-26 23:06:55 · 1302 阅读 · 0 评论