![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
数据结构与算法的原理跟代码展示
Happy_Boy_z
不可能打工的,这辈子都不可能打工的,树林里程序猿个个都是人才,说话又好听~~~~
展开
-
五邑大学数据结构第三章作业答案及解析
五邑大学数据结构第三章作业答案及解析前言选择题大题部分第一与第二题第四题后记前言对于这一章作业的难点,我个人觉得老师有点太为难我们了。既然这么多同学想要我出博客,那我就给大家解析一下吧。选择题第十二题如果是直接百度的话,不难得出答案 D,该题其实就是逆波兰表达式的雏形。(有一些大厂的面试题中有出现过)但是如果有同学想要深入学习的话,可以看看我java版本的数据结构与算法,里面有详细说明起飞大题部分第一与第二题由于此次作业可重用部分很多,所以我把第一跟第二题放在同一段代码里面展示希望原创 2020-05-09 18:24:50 · 618 阅读 · 0 评论 -
五邑大学数据结构第二章作业大题部分答案及解析
五邑大学数据结构第二章作业答案及解析前言模板类顺序表单链表双链表后记前言由于很多同学都反应这一个作业很难做,在我看来应该跟不会使用C++语言创建模板并且测试方法。下面我将提供一些类方便同学们参考且使用模板类格式:class mytest2 //类名{private: /* data */ // 放各种私有数据public: //放各种私有方法 mytest2(/* args */); // 有参构造 ~mytest2(); // 无参构造};mytest2::mytest2原创 2020-05-08 21:08:22 · 666 阅读 · 1 评论 -
数据结构课堂笔记day01-绪论
数据结构课堂笔记day01-绪论抽象数据类型(ADT)算法基本步骤求最大公约数伪代码(多用于描述算法)时间复杂度与空间复杂度数据元素: 数据的基本单位,在程序中作为一个整体进行考虑和处理。一般来说,能独立,完整地描述问题世界的一切实体都是数据元素。数据项:构成数据元素的最小单位可以认为是把问题 图形化,就比如我们在搞学习管理的时候,可以将 一个链表保存一个学生信息,将学号作为索引,再...原创 2020-04-20 21:26:19 · 184 阅读 · 0 评论 -
数据结构与算法之时间复杂度和空间复杂度
事件复杂度和空间复杂度数据结构01 算法的时间复杂度和空间复杂度1、算法的概念:算法 (Algorithm),是对特定问题求解步骤的一种描述。算法五大特征1. 输入2. 输出3. 有穷性4. 确定性5. 可行性解决一个问题往往有不止一种方法,算法也是如此。那么解决特定问题的多个算法之间如何衡量它们的优劣呢?有如下的指标:2、衡量算法的指标:(1)时间复杂度:执行这个算法...转载 2020-01-01 16:34:52 · 543 阅读 · 0 评论 -
数据结构与算法之稀疏 sparsearray 数组
稀疏数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法:记录数组一共有几行几列,有多少个不同的值把具体不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模二维数组转稀疏数组的思路遍历原始的二维数组,得到有效数据的个数sum根据sum就可以创建稀疏数组sparseArr int[sum + 1][...原创 2020-01-02 21:45:46 · 277 阅读 · 1 评论 -
数据结构与算法之队列
队列队列的介绍队列是一个有序列表,可以用数组或是链表来实现遵循先入后出的原则。既: 先存入队列的数据,要先取出。后存入的要后取出。示意图数组模拟队列队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组声明如下图因为队列的输出,输入是分别从前后端来处理的,因此需要两个变量fromt及rear分别记录队列前后端的下标,fromt会随着数据输出而改变,而rear则是随着...原创 2020-01-03 16:21:14 · 220 阅读 · 0 评论 -
数据结构与算法之单链表
链表链表的介绍单链表(带头节点)添加(创建)链表的介绍链表是有序的列表,它在内存中的存储如下链表是以节点的方式来存储,是链式存储每个节点包含data域,next域:指向下一个节点如图: 发现链表的个个节点不一定是连续存储链表分带头节点的链表和没有头结点的链表,根据需求来确定单链表(带头节点)使用一个带head头的单向链表实现排行榜管理完成对英雄人物的增删改查操作...原创 2020-01-04 21:19:00 · 958 阅读 · 0 评论 -
数据结构与算法之双向链表
双向链表双向链表应用实例总结双向链表应用实例使用带head头的双向链表实现 排行榜单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找单向链表不能自我删除,需要靠辅助节点,而双向链表,则可以自我删除,所以前面我们单链表删除时节点,总是可以找到temp的下一个节点来删除思路遍历方和单链表一样,只是可以向前,也可以向后查找添加(默认添加到双向链表的最后)先...原创 2020-01-05 10:55:32 · 206 阅读 · 0 评论 -
数据结构与算法之单向环形链表
单向环形链表单向环形链表josephu问题提示构建环形链表解决josephu问题特别感谢 韩顺平 老师的教导单向环形链表josephu问题设编号为 1,2, …n的n个人围坐在一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列提示用一个不带头结点的循...原创 2020-01-05 16:37:50 · 358 阅读 · 0 评论 -
数据结构与算法之栈(上)
栈栈的介绍栈的应用场景实现栈用数组实现用链表实现栈的介绍栈的英文名为(stack)栈是一个先入后出的有序列表栈是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶,另一端为固定的一端,称为栈底。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除...原创 2020-01-07 16:45:20 · 102 阅读 · 0 评论 -
数据结构与算法之栈(下)之前缀、中缀、后缀表达式(逆波兰表达式)
前缀、中缀、后缀表达式前缀表达式中缀表达式后缀表达式前缀表达式前缀表达式又称波兰表达式,前缀表达式的运算符位于操作数之前(3+4)x5-6 对应的前缀表达式就是 - X + 3 4 5 6对前缀表达式求值,要从右至左扫描表达式,首先从右边第一个字符开始判断,若当前字符是数字则一直到数字串的末尾再记录下来,若为运算符,则将右边离得最近的两个“数字串”作相应运算,然后以此作为一个新的“数字...原创 2020-01-08 19:49:07 · 299 阅读 · 1 评论 -
数据结构与算法之递归与回溯
递归与回溯递归机制递归的应用场景使用递归需要遵循的规则递归机制简单点说就是一个函数调用自己百度上盗个原理图当然,每使用一个函数,都会创建一个新的空间(栈)每个空间的数据(局部变量),是独立的递归的应用场景各种各样的数学问题: 8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题。各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等。将用栈解决的问题–>递...原创 2020-01-10 16:31:40 · 293 阅读 · 0 评论 -
数据结构与算法之八皇后问题
八皇后问题八皇后问题介绍思路分析代码图文解析特别感谢 韩顺平 老师的教导八皇后问题介绍八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋手马克思.贝瑟尔与1848年提出: 在8x8格的国际象棋上摆放八个皇后,使其不能相互攻击,即: 任意两个皇后都不能处于同一行,同一列或同一斜线上,问有多少种摆法思路分析第一个皇后先放第一行第一列第二个皇后放在第二行第一列,然后...原创 2020-01-11 13:20:12 · 2752 阅读 · 0 评论 -
数据结构与算法之排序算法
排序排序算法的介绍排序算法的介绍内部排序插入排序直接插入排序希尔排序选择排序简单选择排序堆排序交换排序冒泡排序快速排序归并排序基数排序外部排序...原创 2020-01-21 13:01:12 · 196 阅读 · 0 评论 -
数据结构和算法之查找算法
查找算法顺序(线性)查找二分查找/折半查找插值查找斐波那契查找顺序(线性)查找直接遍历就是了public static int seqSearch(int[] arr, int value) { for (int i = 0; i < arr.length; i++) { if (arr[i] == value) { return i;...原创 2020-01-23 10:52:23 · 113 阅读 · 0 评论 -
数据结构与算法之哈希表
@toc原创 2020-01-24 10:38:56 · 128 阅读 · 0 评论 -
数据结构与算法之图论
图论图基本介绍图的深度优先遍历广度优先遍历图基本介绍为什么要有图前面我们学了线性表和树线性表局限于一个直接前驱和一个直接后继的关系树也只能有一个直接前驱也就是父节点当我们需要表示多对多的关系时, 这里我们就用到了图图是一种数据结构,其中结点可以具有零个或多个相邻元素。两个结点之间的连接称为边。 结点也可以称为顶点。图的深度优先遍历深度优先遍历基本思想图的深度优先搜索(...原创 2020-04-18 18:30:15 · 323 阅读 · 0 评论 -
数据结构与算法之树
二叉树的概念树有很多种,每个节点最多只能有两个子节点的一种形式称为二叉树。二叉树的子节点分为左节点和右节点。如果该二叉树的所有叶子节点都在最后一层,并且结点总数= 2^n -1 , n 为层数,则我们称为满二叉树。如果该二叉树的所有叶子节点都在最后一层或者倒数第二层,而且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续,我们称为完全二叉树。遍历方式前序遍历: 先...原创 2020-04-18 18:30:45 · 187 阅读 · 0 评论