![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 91
数据结构的学习笔记。包括一些算法和数据结构类型。
柠檬茶@
每天都要成为更好的自己
展开
-
C语言——排序(插入、交换、选择、归并、基数排序)
前言《数据结构最后一弹》——排序看完本篇,你将了解:①查找问题概述,二者的联系②插入排序(直接插入排序、折半插入排序、2–路插入排序、表插入排序、希尔排序)③交换排序(冒泡排序、快速排序)④选择排序(简单选择排序、堆排序)⑤归并排序⑥基数排序(多关键字排序介绍)一、查找问题概述1.基本概念(1)“排序”是基于数据逻辑结构T=(D,R)定义的一种重要的运算。(2)功能是将一个数据元素的任意序列,依据关键字的大小,重新排列成一个有序的序列。(3)D是数据元素集; R是数据元素之间关系原创 2021-07-13 16:55:03 · 2086 阅读 · 4 评论 -
C语言——查找(折半、分块、二叉排序、哈希法)
前言本篇主要介绍查找概念及各类查找方法。看完本篇,你将了解到:1.查找问题概述(查找表可进行的操作、时间开销、一些计算方法)2.顺序表的查找(存储方式、算法时间性能)3.折半查找(可递归可迭代)4.分块查找5.二叉排序树(查找、插入、创建、删除)6.平衡二叉排序树(平衡化方法:四种类型)7.哈希查找(哈希表、哈希函数、解决冲突的方法)一、查找问题概述1.查找问题(1)定义:①“查找”是基于数据逻辑结构(D,R)定义的一种十分常见的运算。②D:数据元素的一个集合R:数据元素关系的原创 2021-06-20 22:18:57 · 4373 阅读 · 4 评论 -
C语言——图(下)(图的连通性、有向无环图及其应用、最短路径)
前言本篇继续图的学习,看完本篇,你将了解到:(1)图的连通性,基于此将开展一系列相关问题。(介绍连通分量及最小生成树等概念)(2)有向无环图及其应用(将介绍重要的拓扑排序和关键路径)(3)最短路径(基于关键路径进行求解,介绍迪杰斯特拉算法和弗洛伊德算法)(划重点)关键路径和两大求解最短路径算法非常重要,是数据结构中图部分非常重要的部分,并依次解决众多后序算法问题。(图较多)一、图的连通性1.无向图的连通分量和生成树(1)连通分量由于该图是连通图,故从任意顶点出发,都能访问到所有其他的原创 2021-06-07 20:41:41 · 2519 阅读 · 15 评论 -
C语言——图(上)(图的定义及术语、存储结构及其遍历)
前言本篇进入图的学习,继前篇树之后,将学习比树更加复杂的结构。有向图无向图或者是否闭合,都有广泛的应用。关于图在一些实际应用中的例子,本篇会给几个例子。(插图较多)看完本篇,你将了解到:(1)什么是图?什么是网?图的常用术语有哪些?(2)图的相关操作(类比于树和线性表)(3)图的表示方法(同样也有数组和链表两种),本篇将新介绍一个邻接表(4)将重点讨论有向图和无向图的表示方法(5)重点!!!图的遍历(常听到的深度优先搜索DFS及广度优先搜索BFS)一、图的定义和术语在线性表中,数据元素为一原创 2021-05-19 16:33:35 · 3541 阅读 · 12 评论 -
C语言——数据结构之树与二叉树(下)(线索二叉树、树与二叉树的转换、哈夫曼树)
前言树的后半部分,将介绍线索二叉树,树和二叉树的转换及哈夫曼树。树的应用很多,内容主要集中在讲解算法思想,代码量有所减少,另外会附很多图以便讲解。ps:(一点废话),不咕咕了。这一篇比上篇会短小一点。一、线索二叉树1.引入部分(1)遍历二叉树是按某种规则将非线性结构的二叉树结点线性化(2)遍历二叉树可得到结点的一个线性序列,在线性序列中,就存在结点的前驱和后继,但是在二叉链表上只能找到结点的左孩子、右孩子(3)二叉树结点中没有相应前驱和后继的信息。现在的问题是:能否通过结点的两个链域查找出原创 2021-04-20 20:53:35 · 681 阅读 · 6 评论 -
C语言——数据结构之树与二叉树(上)(树的定义,二叉树的定义、存储结构与遍历)
前言ps:(一点废话)突然发现上一篇更新是3月31号,咕咕树的内容比较多,这里分成两次发,(下一次不知道是什么时候)从这里开始,就不再是单纯的线性结构了,在日常生活中,其实两个元素之间有时不仅仅是线性关系,往往有着更复杂的结构,树的应用更为广泛一、树的定义1.定义和术语(1)树(tree)(递归定义):是n(n>=0)个结点的有限集T当n=0时,T为空树当n>0时,①有且仅有一个称为T的根的结点②当n>1时,余下的结点分为m(m>0)个互不相交的有限集T1,T2,原创 2021-04-15 23:06:06 · 1037 阅读 · 21 评论 -
C语言——数据结构之广义表(概念及其存储结构)
前言本节我们来说说C语言中的广义表。主要介绍广义表的概念定义,并说明其存储结构,算法中将使用到递归思想。一、广义表的概念1.广义表的概念(1)广义表:也称列表,是n(n>=0)个元素的有限序列记作:LS=(a1,a2,…,an)ai(1<=i<=n)是数据元素或广义表其中:LS:广义表名 n:LS的长度通常,大写字母表示广义表的名称,小写字母表示数据元素(2)原子:当广义表LS的元素是一个数据元素时,称为原子(3)广义表的子表:当广义表LS的元素不是一个数据元素时,称原创 2021-03-31 15:33:01 · 5652 阅读 · 12 评论 -
C语言——一些特殊矩阵的处理(稀疏矩阵)
前言本篇给大家介绍一些特殊矩阵的存储。ps:比较短小。一、特殊矩阵的压缩存储1.n阶对称矩阵:aij=aji矩阵标号:a11,a12,…,ann首先明确:(1)保存矩阵的下三角或上三角部分即可(包括对角线)(2)这里选择保存下三角,下三角元素满足i>=j(3)需保存个数=n(n+1)/2 ,根据个数分配空间(4)假定以行序为主,顺序存储到SA[1…n(n+1)/2],aij保存到了SA[k]里,即可分析出ij的关系①当aij在下三角,i>=j前i-1行共有元素i(i-1)原创 2021-03-26 14:51:41 · 2797 阅读 · 10 评论 -
C语言中的队列(顺序队列与链式队列)——概念及其基本操作
前言太久没更新了,早就说要写结果拖到现在。闲话说完,正式开始内容。队列——顾名思义,其实在线性表中也是一种极其重要的结构。与栈不同的是,栈对元素的插入和删除均在一端进行,而队列,从队头删除,队尾插入,正如日常生活中的排队一样,还是比较形象的。本文将对队列的概念及操作函数进行简要介绍,并说明顺序队列(利用数组)和链式队列(利用链表)的一些基本算法。一、队列的相关概念1.队列及其操作 (先进先出)1.1 相关概念(1)队列:只允许在表的一端删除元素,在另一端插入元素的线性表(2)空队列:不含元原创 2021-03-21 22:46:23 · 10158 阅读 · 15 评论 -
栈——概念、基本操作及其应用
前言一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningswarnings.filterwarnings('ignore')import sslssl._create_defau原创 2021-03-14 21:52:43 · 4143 阅读 · 0 评论 -
线性表的链式存储
前言紧承上篇顺序存储,这一篇来说说链式存储。链式存储在线性表中运用比较多。我们先来说说顺序存储的优缺点,以此引出单链表的定义。顺序存储结构的评价: 优点: (1)是一种随机存取结构,存取任何元素的时间是一个常数,速度快 (2)结构简单,逻辑上相邻的元素在物理上也是相邻的 (3)不需要使用指针,节省存储空间 缺点: (1)插入和删除元素要移动大量元素,消耗时间 (2)需要一块连续的空间 (3)插入元素可能发生原创 2021-03-07 21:56:36 · 595 阅读 · 0 评论 -
线性表定义及其顺序存储
前言继前面算法的引入后,大家对什么是算法及其复杂度有了一定了解。数据元素存储主要形式有顺序存储结构、链式存储结构 。本节将介绍线性表及线性表的顺序存储。因内容过多,链式存储将单独写在后一篇文章里。一、线性表概念及其抽象数据类型前一篇在介绍复杂度时,我们举出了多项式的例子,从多项式例子中可得一些启发。多项式表示问题的启示:1.同一个问题可以有不同的表示(存储)方法2.有一类共性问题:有序线性序列的组织和管理1.什么是线性表(1)线性表定义:由 同类型数据元素 构成 有序序列 的线性结构 (空格原创 2021-02-27 22:32:02 · 1999 阅读 · 5 评论 -
算法引入——定义及复杂度
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、什么是算法二、什么是好的算法1.多项式问题引入2. 如何衡量算法3.4个例子细说复杂度总结前言学习数据结构,算法是基础,本篇主要介绍算法及其复杂度,附例子及代码。一、什么是算法1.定义:算法:一个有限指令集接受一些输入(有些情况下不需要输入)产生至少一个输出一定在有限步骤之后终止每一条指令必须:(1)有充分明确的目标,不可以有歧义(2)在计算机能处理的范围之内(3)描述要抽象,不应该依赖于任何一种原创 2021-02-24 14:53:20 · 2273 阅读 · 11 评论