数据结构
文章平均质量分 88
以简单的方法简述复杂的知识
IC00
今年发50篇文章
展开
-
数据结构学习,图的遍历(DFS和BFS)
数据结构学习,图的遍历(DFS和BFS)前言前面我们学习了数据结构图的基础,关于图的定义,图的术语,以及对图结构使用邻接矩阵和邻接表的存储处理,今天我们学习图的遍历,我们主要学习DFS(深度优先遍历)和BFS(广度优先遍历)两种遍历。这两种遍历衍生的搜索在算法里面考的比较多,在一些算法比赛也运用的比较频繁,像蓝桥杯这样的比赛老喜欢考了,考BFS搜索和DFS搜索。好了别的咋不扯了,我们开始学习吧!!每日一遍,防止恋爱1.图的遍历图的遍历指的是从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一原创 2021-11-26 13:56:12 · 2828 阅读 · 0 评论 -
图的存储结构(邻接矩阵和邻接表)
图的存储结构(邻接矩阵和邻接表)前言:前面我们学习图的有些定义和术语,对图这个数据结构有了新的见解和认知,让我们理解图结构的知识,今天我们学习图的存储结构,图的存储结构比较多,我们今天主要是学习邻接矩阵和邻接表,对于邻接矩阵是使用数组的形式,我们不叫顺序存储结构了,叫邻接矩阵,邻接表和我们十字链有异曲同工之处,只不过邻接表的链表要多一点,好了话不多说我们开始学习吧!!!每日一遍,防止颓废1.邻接矩阵官方术语:邻接矩阵(Adjacency Matrix)是表示顶点之间相邻关系的矩阵。设G=(V,原创 2021-11-25 12:35:50 · 10223 阅读 · 0 评论 -
数据结构,图(用图教你秒懂图的知识)
数据结构学习,图(基础篇)前言:前面我们把树的知识全部学完了,今天我们学习图,如果不算算法,图是是我们最后一种要学的“数据结构”,图是一种非线性数据结构,它比树状结构更复杂,前面我们学习的知识都是一对一或者一对多的关系,今天要学的是多对多的关系,通常用于表示网状结构的数据。其实我们前面学过的都阔以看作特殊的图,图在很多邻域都用的到,博主之前学网络的时候广域网就是网状,就是表示不止一条通道。每日一遍,注意休息1.图的定义无论多么复杂的图都是由顶点和边构成的,采用形式化的定义,图G(Graph)由两原创 2021-11-21 09:54:38 · 6482 阅读 · 1 评论 -
哈夫曼树(看图秒懂篇)
数据结构专升本学习,哈夫曼树前言前面我们学习了,树,二叉树,线索二叉树的逻辑,和简单运算,说简单吧不简单,说难吧又还行,对于我们基础较差的同学有些知识知道了解就好了,不必要去深究,好了,讲正事了,今天我们要学的是哈夫曼树,哈夫曼树又被称为最优二叉树,哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近,在计算机中编码中应用广泛,特别是压缩,使用哈夫曼树的逻辑可以使我们的程序运行速度提升,是对项目的一种比较好的优化方式。每日一遍,防止颓废1.哈夫曼树的定义给定N个权值作为N个叶子结点,构造一棵二原创 2021-11-18 14:55:27 · 4806 阅读 · 1 评论 -
线索二叉树,画图教你秒懂线索二叉树(线索二叉树的建立和简单操作)逻辑代码分析
数据结构专升本学习,线索二叉树前言前面我们学习树和二叉树的一些基本操作,今天我们学习一个新的知识,学习一下线索二叉树,线索二叉树是由二叉链存储结构变化而来的(我们先得有个二叉链树,再做处理),就是将原来的空域链改为莫种遍历次序下该结点的前驱结点和后继结点的指针,就相当于把我们的空域也利用起来指向下一个要输出的结点,对于下一个结点提高了访问速度,emmm,有点难,博主也有点云里雾里,看博主的解释能不能让你理解。嘿嘿每日一遍,快乐学习你们第一次炒菜是不是也是这个样纸!!!!哈哈哈哈1.什么是线索二叉原创 2021-11-16 17:59:22 · 13711 阅读 · 0 评论 -
二叉树,二叉树的四种遍历(先序,中序,后序,层次)代码实现及二叉树的两种存储结构讲解
数据结构专升本学习,二叉树的四种遍历(先序,中序,后序,层次)代码实现及二叉树的两种存储结构讲解前言:前面我们学习二叉树的性质和二叉树四种遍历的逻辑,这篇文章是对二叉树的的扩展和之前学过四种的遍历代码实现,另外对二叉树的存储结构进行分析,顺便代码实现,博主尽量简单明了表示,哈哈哈,说不难吧又有点难,说容易吧也容易,难搞哦,学习吧学习吧,让小的们卷起来,顺带看你对于这个知识是觉得难还是容易。嘿嘿的????????????每日一遍,快乐无极限1.二叉树的存储结构1.1 二叉树的顺序存储结构二叉树的原创 2021-11-15 17:56:39 · 5448 阅读 · 0 评论 -
二叉树,二叉树篇画张图教你秒懂二叉树的5个性质,四个遍历
数据结构专升本学习,二叉树篇前言上一篇文章博主简单讲解了树逻辑结构,今天我们来学习树结构里面比较特殊的树状结构因为它比较简单,二叉树是树形结构的一个重要类型,二叉树虽然是树,但是二叉树和树是有区别的,二叉树的左右子树区分严格,树却没有。在许多实际问题抽象出来的数据结构往往是二叉树形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要,嘿嘿,让我们开始学习吧哈哈哈!!!每日一遍,防止颓废!!1.二叉树的定义二叉树(binary tree)是指树中原创 2021-11-13 21:44:58 · 5801 阅读 · 0 评论 -
树的四种表示法(树状,文氏图标,凹入表示法,括号表示法),三种遍历(先根,后根层次遍历)(一张图教会你什么是树)
数据结构专升本学习,树篇前言上一篇文章博主学了稀疏矩阵,线性结构的存储我们就学完了,我现在要开始非线性结构存储了,今天这一篇文章我们学习一下树,树状结构是非常重要的非线性结构,它用于描述数据元素之间的层次关系,像我们生活中的族谱一样,树状结构主要包括树和二叉树。我们今天主要讲解树,二叉树下一篇文章讲解。嘿嘿偷个懒!!!每日一遍,双十一你剁手了嘛?1.树的定义树(tree)是包含 n(n≥0) 个节点,当 n=0 时,称为空树,非空树中条边的有穷集,在非空树中有三个定义:(1)树的每个元素称为节点原创 2021-11-11 21:57:32 · 14058 阅读 · 3 评论 -
三元组和十字链,稀疏矩阵(画图教你稀疏矩阵的三元组和十字链表示)
数据结构专升本学习,稀疏矩阵(三元组和十字链)前言:前面我们简单学了,数组和几种简单的压缩存储,今天我们学习一下稀疏矩阵,稀疏矩阵的存储方法只存储非零元素,主要有三元组和十字链两种方法,接下来我会尽量让大家明白这个东西,没学会也没关系,博主自我感觉这个东西不怎么重要,当然只是对我自己而言,因为我现在都没遇到过项目说优化要使用稀疏矩阵来优化。哈哈哈,可能博主做过的项目少吧,好了,不多聊了我们进入主题。每日一遍,防止颓废(双十一了,别人在剁手,我们穷的在吃土????????????)1.什么是稀疏矩原创 2021-11-10 21:33:19 · 5909 阅读 · 2 评论 -
画图教你矩阵对称压缩,对角压缩,三角压缩(数组和数组矩阵的三种压缩)
数据结构专升本学习,数组和数组矩阵的三种压缩前言:前面我们把链表,栈,队列,串,都学习的差不多了,接下我们要学习,数组了,数组在我们编程中用到很多,因为它是最基本的存储方法,它分为一维数组和二维数组,数组和之前学过的一样,我们也是可以看作一个线性表,因为数组是一个有序的序列,接下来我们简单学习一下数组和稀疏矩阵。每日一遍,防止颓废1.数组数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下原创 2021-11-09 14:14:50 · 6874 阅读 · 0 评论 -
链式串的复制,连接,子串,插入,删除操作(串篇)
前言:上一篇文章,博主写了顺序串的一些简单操作,串和之前我们学过的栈,队列,都是有链式的存储结构,因为顺序的存储总是有限的,而链式的存储是不需要我们定义大小的,要用多少就生成多少,不用就释放掉,确实在存储方面,链式存储有着很大的优点,这篇文章是需要和上一篇文章结合看的,因为里面有许多的逻辑,博主都是说看上一篇文章,哈哈哈偷个懒,接下来让我们来学习吧!!!????????????每日一遍,要努力!!1.理解链式串的逻辑,认识链式串的核心代码串的链表存储结构与顺序存储结构类似也有紧缩和非紧缩存储结构的原创 2021-11-08 22:31:39 · 7533 阅读 · 0 评论 -
顺序串的复制,判断相等,连接,子串,查找子串在母串位置,插入,删除(顺序串篇)
前言:前面我们把栈和队列已经学的差不多了,今天来复习一下,数据结构的串,串的存储结构,在Java里面是有String类型的,但是C语言里面是没有的,需要自己封装一下,再进行操作。串是由零个或多个字符组成的有限序列,串长度为零我们称为空串,它不含任何字符。在学习串我们只要学习,串的算法,例如复制,连接,判断相等,求子串之类的算法。每日一遍,心情愉悦(你们应该没有这样的损友吧,????????????)1.顺序串顺序串的存储结构的和线性表一样,也是主要分为顺序存储结构和链式存储结构两类,前者简称顺序原创 2021-11-07 21:22:37 · 6960 阅读 · 1 评论 -
链式队列,队列篇(链式队列的出队入队操作)
数据结构专升本学习,队列篇(链式队列)前言:上一篇博主简单讲解了顺序队列和循环队列,今天讲解队列最后一篇链式队,链式队在数据结构中用到比较多,用来做一些排队的算法,还有链式队列是也是和链式栈一样采用链表的方式来表现,链式队列针对数据比较灵活的数据比较方便,因为它不像顺序队列一样需要定义最大值,链式队列只需要建立新结点,比较灵活,没有大小限制,只要内存,并且用完了就释放了,对于变动较大的数据很友好。每日一遍,防止颓废1.理解链式队列逻辑,认识核心代码所谓队列的链式存储结构是用一个线性链表来表示一个原创 2021-11-06 12:41:00 · 19332 阅读 · 2 评论 -
顺序队和循环队列,队列篇(顺序队和循环队列入队出队操作)
数据结构专升本学习,队列篇(顺序队和循环队列)前言:之前我们把栈学完了,比较简单,今天我们学习队列里面的顺序队和循环队列,说难不难,说简单不简单,我们需要认真学习,博主会尽力把原理和逻辑讲明白,不懂的童鞋可以认真多看几遍,博主真的很想教会大家。希望大家认真看,有问题的地方可以评论提出来,希望大家,喜欢。每日一遍,防止早恋:1.什么是队列队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进原创 2021-11-03 17:39:58 · 9991 阅读 · 0 评论 -
链式栈,栈篇(链式栈的进栈出栈操作)
前言:上一遍文章,博主讲了顺序栈,今天博主讲一下链式栈,链式栈专业术语:链式栈是一种数据存储结构,可以通过单链表的方式来实现,使用链式栈的优点在于它能够克服用数组实现的顺序栈空间利用率不高的特点,但是需要为每个栈元素分配额外的指针空间用来存放指针域。讲人话就是:就是有一个栈顶指针,指向了一个单链表,单链表存数据,栈顶指针取,放数据。每日一遍,心情愉悦(图片是博主在家拍的,其实还有一个非常带感的视频,上传不了,有机会给网友看一下)1.理解逻辑,知道什么是链式栈。链式栈,其实和单链表很相似,进栈可以原创 2021-11-02 21:22:36 · 18787 阅读 · 4 评论 -
顺序栈,栈篇(画图教您顺序栈的进栈出栈操作)
数据结构专升本学习,栈篇(顺序栈)前言:上次我们学了,线性表里面的的链表,今天我们学栈,用官方的术语就是,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)也就是后进先出(LIFO)或者先进后出。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。每日一遍,快乐无极限,哈哈哈1.什么是栈我们先学习一下栈的逻辑,在编程中逻辑是非常重要的东原创 2021-11-01 20:07:28 · 9090 阅读 · 1 评论 -
单链表头插法,尾插法,循环链表,(线性表单链表)
前言今天在学校学习了线性表里面的链表,老师讲解很到位,让人通俗易懂,学习嘛,总是需要记笔记的,好记性不如烂笔头,今天小编就把学到的知识捋一遍,做一个学习笔记分享给大家。不喜勿喷。。。。哈哈哈每天一遍,防止颓废1.让我们了解一下链表1.1 链表有单链表,双向链表,循环链表等等,不管什么链表都得会先创建链表,创建链表我们就得知道几个关键步骤。#mermaid-svg-iernhCbKdazpMkuK .label{font-family:'trebuchet ms', verdana, arial;原创 2021-10-25 08:27:46 · 2852 阅读 · 0 评论 -
约瑟夫环,双向链表插入和删除,循环双向链表操作,(线性表链表)
前言:今天课上我们老师复习了单链表的头插法和尾插法,插入和删除,这几个不太懂的童鞋关注我上一篇文章( https://juejin.cn/post/7022789985589788709 ),然后老师讲解了约瑟夫环,约瑟夫环采用的是循环链表,今天我们复习一下约瑟夫环的算法,顺便提前预习一下双向链表和循环双向链表。每日一遍,防止颓废你的室友可能在划水,但绝对没有停止学习,明修栈道,暗度陈仓1.1 约瑟夫环我们先了解一下约瑟夫环,约瑟夫环是一个悲惨的故事在罗马人占领乔塔帕特后,39 个犹太人与Jo原创 2021-10-27 08:04:44 · 5072 阅读 · 0 评论