Data Structure+Algorithm
文章平均质量分 79
数据结构
抹泪的知更鸟
无论怎样的苦难喜甜,终将逝为云烟
展开
-
算法 经典的四种查找算法代码详解
经典的查找算法顺序(线性)查找简介图解题目要求代码实现结果展示二分查找/折半查找简介题目要求要求思考思路分析简单思路分析图解思考思路分析代码展示结果展示插值查找简介题目要求思路分析图解代码展示结果展示斐波那契查找简介题目要求思路分析代码展示结果展示顺序(线性)查找简介顺序查找适合于存储结构为顺序存储或链接存储的线性表基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功;若扫描结束仍没有找到关键字等于k原创 2021-12-30 16:42:15 · 1396 阅读 · 0 评论 -
算法 经典的八大排序算法详解和代码实现
算法 经典的八大排序算法详解和代码实现排序算法的介绍排序的分类算法的时间复杂度时间频度示例图表理解时间复杂度的特点时间复杂度常见的时间复杂度空间复杂度排序算法的时间复杂度冒泡排序基本思想图解代码示例结果展示代码优化结果展示选择排序基本思想图解代码实现结果展示插入排序基本思想图解代码实现结果展示希尔排序基本思想图解代码实现结果展示快速排序基本思想图解代码实现结果展示归并排序基本思想图解代码实现结果展示基数排序基本思想图解代码实现排序算法的介绍排序也称排序算法,排序时将一组数据,依指定的顺序进行排列的过程原创 2021-12-20 20:46:46 · 3509 阅读 · 2 评论 -
数据结构 经典回溯算法八皇后问题详解
八皇后问题1.介绍八皇后问题(英文:Eight queens),是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。如果经过±90度、±180度旋转,和对角线对称变换的摆法看成一类,共有42类。计算机发明后,有多种计算机语言可以编原创 2021-12-15 08:00:00 · 765 阅读 · 0 评论 -
数据结构 递归详解和代码演示
递归递归详解和代码演示递归1.应用场景和解决的问题2.概念3.递归调用机制4.代码示例4.1示例4.2结果5.遵循的规则6.迷宫算法6.1使用递归完成迷宫问题6.2代码实现6.3结果展示1.应用场景和解决的问题各种数学问题:迷宫问题(回溯),八皇后问题,汉诺塔,阶乘问题等等算法:快排,归并排序,二分法查找,分治算法,最小生成树,最短路径等等用栈解决问题,文件夹等等总而言之,递归相当重要!2.概念递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码原创 2021-12-14 08:30:00 · 648 阅读 · 0 评论 -
数据结构 前缀、中缀、后缀表达式(逆波兰表达式)详解和代码实现
前缀、中缀、后缀表达式(逆波兰表达式)1.前缀表达式(波兰表达式)1.1前缀表达式式介绍1.2前缀表达式的计算机求值2.中缀表达式3.后缀表达式3.1介绍3.2后缀表达式计算机求值4.逆波兰表达式代码实现4.1题目要求4.2代码实现4.3结果展示5.中缀表达式转换为后缀表达式5.1思路步骤分析5.2代码实现5.3结果展示1.前缀表达式(波兰表达式)1.1前缀表达式式介绍前缀表达式的运算符位于操作数之前示例:(3+4)x5-6对应的前缀表达式就是-x+3 4 5 61.2前缀表达式的计算机求值从右原创 2021-12-13 08:00:00 · 1820 阅读 · 1 评论 -
数据结构 栈详解和数组代码实现
数据结构 栈详解和数组代码实现1.栈的介绍1.1栈的特点1.2进栈出栈的图示1.3栈的应用场景2.数组模拟栈的思路2.1思路分析2.2代码实现2.3结果展示3.栈实现综合计算器3.1题目要求3.2思路分析3.3代码实现3.4结果展示1.栈的介绍1.1栈的特点1)栈时先进后出的有序列表2)只能在同一端操作,变化的一端为栈顶,可以插入(入栈)删除(出栈),固定的一端栈底3)最先放入的元素在栈底,最后放入的在栈顶,删除元素则相反1.2进栈出栈的图示1.3栈的应用场景1)子程序的调用:在跳往子程序原创 2021-12-09 12:33:00 · 1070 阅读 · 0 评论 -
数据结构 环形链表详解和约瑟夫问题代码详解
环形链表环形链表详解环形链表1.Josephu(约瑟夫、约瑟夫环)问题:2.单向环形链表介绍3.解决问题的思路4.代码示例5.结果展示1.Josephu(约瑟夫、约瑟夫环)问题:josephu问题有:设编号为1,2,…n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1 开始报数,数到m的那个人出列,他的下一位又从1开始报数,数到m的那个人有出列,依此类推,直到所有人出列为止,由此产生一个出队编号的序列提示:用一个不带头节点的循环链表来处理Josephu问题:先构成一个有n个节原创 2021-12-07 16:36:02 · 855 阅读 · 0 评论 -
数据结构 双向链表详解和代码演示
双向链表详解1.双向链表介绍1.1单向链表的缺点1.2双向链表2.应用示例2.1题目要求2.2代码实现2.2结果展示1.双向链表介绍1.1单向链表的缺点1)单向链表的查找方向只能是一个方向2)不能自我删除,必须要辅助节点进行遍历,才可以删除1.2双向链表双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个[指针],分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。分析:双向链表的遍历,添加,修改,删除的操作思路1)遍历方向可原创 2021-12-06 14:59:02 · 401 阅读 · 0 评论 -
数据结构 单向链表详解和代码演示
链表详解和代码演示链表1.链表的介绍1.1单链表的内存结构图:1.2单链表(带头节点)逻辑结构示意图2.单链表的应用实例2.1题目要求2.2思路分析2.2.1head节点:2.2.2添加:next指向heroNode (添加到最后)2.2.3按照编号的顺序添加:2.2.4单链表的修改2.3相关代码2.4结果展示2.5小结链表1.链表的介绍链表是一种物理存储单元上非连续、非顺序的存储结构数据元素的逻辑顺序是通过链表中的指针链接次序实现的链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行原创 2021-12-04 18:00:59 · 574 阅读 · 0 评论 -
数据结构 队列详解和代码演示
数据结构 队列和链表详解和代码演示1.队列常用数据结构之一,队列是一个有序列表,可以用数组或是链表来实现遵循先进先出的原则,双端队列可以两头进和两头出,现在的栈,便是使用双端队列Deque来实现原创 2021-12-05 12:00:00 · 508 阅读 · 0 评论 -
稀疏数组 详解和代码演示
稀疏数组详解1.基本介绍1.1需求介绍1.2效果展示1.2.1二维数组1.2.2转化为稀疏数组:2.数组转稀疏数组互相转换的详解思路2.1二维数组转稀疏数组2.2稀疏数组转化为原始数组3.代码实现3.1.相关代码3.2结果展示1.基本介绍1.1需求介绍编写的五子棋程序中,有存盘退出和续上盘功能该二维数组有很多值默认值为0,记录了许多没有意义的数据稀疏数组使存储的占用空间大大减小,它记录数组一共有几行几列,有多少个不同的值第一行的第一个元素是表示多少行,第一行的第二个元素表示多少列,第一行的第原创 2021-11-30 19:06:21 · 255 阅读 · 0 评论