05、数据结构与算法 - 实战:双链表的增、删、改、查
前言 一、双链表的应用实例 使用带head头节点的双向链表实现 - 水浒传英雄排行榜 二、单链表的缺点分析 1、 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找; 2、 单向链表**不能自我删除**,需要靠辅助节点,而双...
前言 一、双链表的应用实例 使用带head头节点的双向链表实现 - 水浒传英雄排行榜 二、单链表的缺点分析 1、 单向链表,查找的方向只能是一个方向,而双向链表可以向前或者向后查找; 2、 单向链表**不能自我删除**,需要靠辅助节点,而双...
前言 总结一下单链表的面试题,对其详细的描述。 这个的方法 我都放在了 SingleLinkedListMain 类中,写成了静态方法。 一、 求单链表中有效的个数 1.1 问题描述 求单链表中有效节点的个数 1.2 思路分析 直接遍历即可...
公众号:“皇子谈技术”主理人
前言 一、单链表(Linked List)介绍 链表是有序的列表,但是他在内存中是存储如下: 特点: 二、应用实例 使用带head头的 单向链表 实现 –水浒英雄排行榜管理 1、 完成对英雄人物的增删改查操作.; 2、 添加英雄的第一种方法...
前言 数据结构学习的第一节便是 稀疏数组和队列。 一、稀疏数组 1.1 实际需求 编写的五子棋程序中,有存盘退出和续上盘的功能。 实现该功能可以使用二维数组进行存储棋盘,黑子为1,蓝子为2,如图所示: 但是该二维数组的很多值是默认值0, 因...
摘要 跳表可以降低有序链表的添加、删除和搜索的平均时间复杂度。跳表的应用场景也是比较多,比如在 Redis 中使用。它的实现逻辑也是值得去学习的。 一个有序链表的搜索、添加和删除的平均时间复杂度为 O(n)。那么,是否可以利用二分搜索法优化...
摘要 上期介绍动态规划的什么,有什么特性,能解决什么类型的问题。这期就通过一个案例,看一下动态规划解决问题的过程。 上期介绍动态规划的什么,有什么特性,能解决什么类型的问题。这期就通过一个案例,看一下动态规划解决问题的过程。 动态规划解决问...
摘要 动态规划是求解最优化的一种常用策略,它依然需要拆分成若干个子问题,但是每个子问题只有求解一次,并保存它的解。可以用动态规划解决的问题需要有最优子结构和无后效性两个特定。 动态规划是求解最优化的一种常用策略,它依然需要拆分成若干个子问题...
摘要 分治就是将原问题不断拆分成规模小的问题,直到小问题可以得出答案为止,然后再往上推导出原问题的答案。拆分的问题必须要和原问题结构是一致,这和递归的解答思路较大程度上是一致的。 分治就是将原问题不断拆分成规模小的问题,直到小问题可以得出答...
摘要 贪心策略的本质逻辑就是每一次都选择当前的最优解,直到得出全局的最优解,但是每一次的局部最优解不能和最终的全局最优解划上等号。这也就是贪心策略的缺点。 贪心策略也被称为贪婪策略,就是每一步都采取当前状态下最优的选择(局部最优解),从而希...
摘要 回溯本质就是前进不成,就后退一步换另外一条路继续前进,直到到达目的地。它在树结构、图结构中都有应用。本文通过解决八皇后的问题来了解回溯的思想。 回溯本质就是前进不成,就后退一步换另外一条路继续前进,直到到达目的地。它在树结构、图结构中...