数据结构与算法
天涯海角寻寻觅
键盘不敲烂,月薪不过万
展开
-
数据结构与算法:递归
递归 概念 方法自己调用自己,每次调用时传递不同的变量。 有助于解决复杂问题,同时可以让代码简洁。 规则 当程序执行到一个方法时就会开辟一个独立的空间(栈) 每个空间的数据(局部变量),是独立的 必须向退出递归条件逼近 当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕 示例: public static v...原创 2020-03-15 22:15:30 · 138 阅读 · 0 评论 -
数据结构&算法--04栈的使用及实际应用-前缀、中缀、后缀表达式(逆波兰表达式)
程序 = 数据结构 + 算法 数据结构分类: 线性结构:数组,队列,栈,链表 非线性结构:二维数组,多维数组,广义表,树结构,图结构 什么是栈(stack) 栈是后**先入后出(FIFO-first in last out)**的有序列表 栈是限制线性表中元素的插入和删除只能在线性表中的同一端进行的一种特殊线性表 栈顶:变化的一端(Top) 栈底:固定的一端(Bottom) 实现栈的思路...原创 2020-02-17 23:21:10 · 138 阅读 · 0 评论 -
数据机构&算法--单向环形链表约瑟夫问题(Java版)
程序 = 数据结构 + 算法 数据结构分类: 1、线性结构:数组,队列,栈,链表 2、非线性结构:二维数组,多维数组,广义表,树结构,图结构 单向环形列表介绍 ...原创 2020-02-17 12:09:22 · 138 阅读 · 0 评论 -
数据结构&算法--双向链表(Java版)
程序 = 数据结构 + 算法 数据结构分类: 1、线性结构:数组,队列,栈,链表 2、非线性结构:二维数组,多维数组,广义表,树结构,图结构 双向链表 对单链表有不了解的小伙伴可参考本人此篇博文 数据结构&算法 - - 单链表 双链表与单链表不同,其每个节点中增加了pre(指向前一个节点) 分析双向链表CRUD(增删改查)操作思路 => 代码实现 1、遍历和单链表相同,可以向前亦可...原创 2020-02-15 13:45:35 · 159 阅读 · 0 评论 -
BAT面试--单链表
请看题: 1、求单链表中有效节点的个数【腾讯】 2、查找单链表中的倒数第k个结点 【新浪面试题】 3、单链表的反转【腾讯面试题,有点难度】 4、从尾到头打印单链表 【百度,要求方式1:反向遍历 。 方式2:Stack栈】 5、合并两个有序的单链表,合并之后的链表依然有序【课后练习.】 1、求单链表中有效节点的个数【腾讯】 示例代码 // 获取单链表的节点的个数(如果是带头结点的链表,需求不统计头...原创 2020-02-14 22:25:48 · 288 阅读 · 0 评论 -
数据结构与算法--03单链表(Java版)
程序 = 数据结构 + 算法 数据结构分类: 1、线性结构:数组,队列,栈,链表 2、非线性结构:二维数组,多维数组,广义表,树结构,图结构 链表介绍 1、链表是有序列表,在内存中存储如下 图片小结: 1、链表是以节点的方式存储 2、每个节点包含data域,next域(指向下一个节点) 3、链表各节点不一定连续存储 4、链表分带头节点的链表和没有头节点的链表,依据实际需求确定 单链表(带头结点)...原创 2020-02-11 22:04:51 · 182 阅读 · 0 评论 -
HashMap数据结构原理简介
(对“哈希”有不了解的小伙伴可参见我上一篇博客哈希简介,内容较简洁,理解足矣) 哈希简介,点击即可,后续会不定时持续更新 一、简述 1、HashMap是JDK中较为常用的一种数据类型,是数组+链表的数据结构,也是当今世界检索最快的哈希算法; 2、它是基于哈希表的Map接口的实现,并允许使用null值 和 null键(即key 与 value 可为空); 3、它是非线程安全的,也就是说多线程情况下可...原创 2019-10-15 00:58:19 · 422 阅读 · 2 评论 -
数据结构&算法--02队列(Java版)
程序 = 数据结构 + 算法 数据结构分类: 1、线性结构:数组、队列、链表、栈 2、非线性结构:二维数组、多维数组、广义表、树结构、图结构 队列介绍 1、队列是一个有序列表可以用数组或链表实现; 2、队列遵循先入先出原则,先进的先取,后入的后取; 数组模拟队列思路 1、队列本身是有序列表,若使用数组的结构来存储队列数据,则队列数组的声明如下图 maxSize:队列最大容量 2、因为队列的输入输出...原创 2020-02-10 16:50:49 · 129 阅读 · 0 评论 -
数据结构与算法--01稀疏数组(Java版)
**程序 = 数据结构 + 算法; ** 稀疏数组 当一个数组中大部分元素为0,或其为同一数值的数组时,可以使用稀疏数组来保存该数组; 处理方法: 1、记录数组的行和列,及不同的数值; 2、把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序规模; 二维数组转稀疏数组思路: 1、遍历原始二维数组获取有效数据个数(sum); 2、依据sum创建稀疏数组int[sum+1][3]; 3...原创 2020-02-09 19:28:27 · 147 阅读 · 0 评论