数据结构与算法入门
文章平均质量分 66
小玄将和大家一起从基本的数据结构与算法一起入门学习,不断提高!!冲冲冲!!
玄澈_
喜欢阅读前沿书籍和课程,乐于与大家分享学习心得。- ̗̀(๑ᵔ⌔ᵔ๑)同时也是一位不断提升自己技术的大学生。希望和大家一起进步努力
展开
-
【数据结构与算法】—— * 字符串 *
小玄的字符串深入详解小课堂ヾ(≧▽≦*)o原创 2022-01-08 18:10:40 · 2573 阅读 · 44 评论 -
【数据结构与算法】—— *栈 *
【数据结构与算法】—— *栈 *原创 2022-01-02 20:13:39 · 1062 阅读 · 37 评论 -
【数据结构与算法】—— * 双向链表 *
【数据结构与算法】—— * 双向链表 * 多图详解原创 2021-12-26 22:41:15 · 1289 阅读 · 35 评论 -
【数据结构与算法】—— * 循环链表 *
【数据结构与算法】—— * 循环链表 *原创 2021-12-25 23:06:25 · 1542 阅读 · 25 评论 -
【数据结构与算法】—— * 【链表】--- 单链表 *
链表的每一个结点中只包含一个指针域优点 : 储存空间利用高效举例来说:typedef struct student{ int id; //学生编号 char* name; //学生名称 //指向下一结点的指针 struct Student* pNext;}Student;与之相反的是多链表typedef struct student{ int id; //学生编号 char* name; //学生名称 //指向下一结点的指针 ...原创 2021-12-19 20:11:29 · 1433 阅读 · 43 评论 -
【数据结构与算法】—— * 链表 入门(三)*
前言之前,小玄已经写过了链表相关的文章:【数据结构与算法】—— * 链表 入门(一)*_forever_bryant的博客-CSDN博客【数据结构与算法】—— * 链表 入门(二)*_forever_bryant的博客-CSDN博客在这篇文章,小玄将通过实例讲解的方式来为大家进一步温习相关的内容和知识点。基本概念结点包括数据域和指针域 链表是由 n 个结点链接成,第一个结点的存储位置叫头指针,最后一个结点的指针为“空”typedef struct Hero{ i...原创 2021-12-15 07:31:37 · 2044 阅读 · 41 评论 -
【数据结构与算法】—— * 链表 入门(二)*
引入在上一节的学习中我们介绍了C语言如何实现链表,但是,在这一章,我们将抛开令人头秃的指针和结构体,我们将另外使用一种数组来实现的方式,叫做模拟链表。让我们一起来看看。模拟链表介绍链表中的每一个结点都只有两个部分。我们可以使用一个数组date来储存每序列中的每一个数。那每一个数右边的数是谁,这一点该如何解决呢?在上一章的内容中我们是使用指针来解决的,这里我们只需再用一个数组right来存放序列中每一个数右边的数是谁就可以了。具体要怎么做呢?上面的两个数组中,第一个整型数组da..原创 2021-12-11 22:32:56 · 1805 阅读 · 37 评论 -
【数据结构与算法】—— * 链表 入门(一)*
引言在存储一大波数的时候,我们通常使用的是数组,但是数组有时候又会显得不够灵活,比如下面这个例子:有一串已经排序好的数 2,3,5,8,9 ,10如果我们想要往数组中插入6 这个元素,需要把 8 以后的元素全部往后挪一位这样操作显然很耗费时间,如果使用链表的话则会快很多。那么什么是链表呢?请看下图:此时如果需要在8前面加入一个6,那么只需要向下图一样更改一下就可以了,而不用向像最开始那样把每个数向后挪。链表的相关思考为了实现链表这样的数据结构,我们需要使用..原创 2021-12-07 16:32:15 · 3561 阅读 · 37 评论 -
【数据结构与算法】—— * 图的遍历(二)*
前言在上一章的内容中我们使用了深度优先搜索来进行遍历,这一章我们选择使用广度优先搜索来完成这个图的遍历 --> 结果如下:广度优先搜索过程使用广度优先搜索来遍历这个图的过程如下。首先以一个未被访问过的顶点作为起始顶点,比如以1号点作为起始顶点。将1号点放到队列中,然后将与1号点相邻的未访问过的顶点 即 2,3,5号顶点依次放入队列中,如下图:接下来将2号顶点相邻的未访问过的顶点4号放入到队列中。到此所有的顶点都访问过了,遍历结束。如下图:主..原创 2021-12-06 08:21:48 · 368 阅读 · 24 评论 -
【数据结构与算法】—— * 图的遍历(一)*
引入前面我们已经学过了深度和广度搜索。为什么叫深度和广度呢?其实是针对图的遍历而言的,请看下面这个图:图是由一些小圆点(称为顶点) 和 连接这些点的直线 (称为边)组成的。例如上图就是由5个顶点(编号为 1,2,3,4,5) 和5条边(1-2,1-3,1-4,2-4)组成。现在我们从1号顶点开始遍历这个图,遍历就是把图的每一个顶点都访问一次。使用深度优先搜索将会得到如下的结果。图中每个顶点旁边的数表示这个顶点是第几个被访问到的,我们称之为 —— 时间戳使用深度...原创 2021-12-05 07:08:47 · 600 阅读 · 18 评论 -
【数据结构与算法】—— * 快速排序 *
今天小玄为大家带来平时代码时常用的一种排序方法——快速排序算法简介快速排序(Quick Sort)是在冒泡排序的基础上演变而来的,实际上是冒泡排序的递归分治法。快速排序在每一轮挑选一个基准元素,并让其他比它大的元素移到数列的一边,比它小的元素移到数列的另一边,从而把数列拆解成了两个部分。具体流程如下:通过分割将对象局部数组分割成前后两个局部数组(Divide) 对前半部分数组执行quickSort(Solve) 对后半部分数组执行quickSort(Solve)算..原创 2021-11-22 23:35:09 · 595 阅读 · 25 评论 -
【数据结构与算法】—— * 广度优先搜索(一) *
在上一次解救小玄的行动中,我们使用了深度优先搜索的方法。今天,我们将介绍另外一种方法来解决这个问题——广度优先搜索(Breadth First Search,BFS),也称为宽度优先搜索。问题解析最开始时,小澈在迷宫(1,1)处,他可以选择往右或者是往下走。选择我们采用“一层一层”拓展的方法来找到小玄。拓展时每发现一个点就将这个点加到队列中,直到走到小澈的位置(P,Q)时为止。最开始时,小澈在入口(1,1)处,一步之内可以到达的点有(1,2)和(2,1)。但是小玄并不在这两个点上,那.原创 2021-11-20 17:12:13 · 1100 阅读 · 24 评论 -
【数据结构与算法】—— * 深度优先搜索入门 (二) *
问题引入有一天,小玄一个人去玩迷宫,但是方向感很不好的他迷路了。小澈知道后便去解救无助的小玄。小澈是有备而来,已经弄清楚了迷宫的地图,现在小澈要以最快的速度去解救小玄。问题开始了......迷宫由n行m列的单元格组成(n,m < 50),每个单元格要么是空地,要么是障碍物...原创 2021-11-17 10:56:06 · 926 阅读 · 27 评论 -
【数据结构与算法】—— * 深度优先搜索入门 *
问题引入输入一个数n,输出1~n的全排列问题解析假设有编号为1,2,3的3张扑克牌和编号为1,2,3的3个盒子。需要将这3张扑克牌分别放到3个盒子里面,并且每个盒子有且只能放一张扑克牌。问一共有多少种放法?首先,我们按照正常的顺序来进行放置,顺序为——“1-2-3”然后我们走到了第四个盒子前,这时候已经没有扑克牌可以放置了,现在我们要重新回到3号盒子前,需要取回之前放在3号盒子里的扑克牌,再去尝试看看能不能放别的扑克牌,从而产生一个新的排列。于是我们取回3号扑克牌。...原创 2021-11-14 23:30:04 · 868 阅读 · 25 评论