![]()
内容推荐 本书是《数据结构教程(第6版·微课视频·题库版)》(李春葆主编,清华大学出版社出版,简称《教程》)的配套在线编程实训指导书,详细给出了《教程》中所有在线编程题(共143道在线编程题,均来自LeetCode网站)的解题思路和参考源代码,提供了全部题目的讲解视频。书中在线编程题不仅涵盖数据结构课程的基本知识点,还融合了各个知识点的运用和扩展,学习、理解和借鉴这些参考答案是掌握和提高数据结构知识的最佳途径。本书自成一体,可以脱离《教程》单独使用。 本书适合高等院校计算机及相关专业学生使用,也适合IT企业面试者和编程爱好者研习。 作者简介 李春葆,武汉大学计算机学院教授。主要研究方向为数据挖掘和算法设计,先后主持和参加多个大型研究项目。主要为本科生讲授数据结构(15年以上)和软件工程等课程,为研究生讲授软件开发新技术、数据仓库与数据挖掘等课程,并出版十多部精品著作。 目录 配套资源 第1章 绪论 1.1 LeetCode网站在线编程说明 1.2 基础算法设计 1.2.1 LeetCode7——整数反转★ 1.2.2 LeetCode66——加一★ 1.2.3 LeetCode1——两数之和★ 1.2.4 LeetCode1588——所有奇数长度子数组的和★ 第2章 线性表 2.1 顺序表及其应用 2.1.1 顺序表的实现 2.1.2 LeetCode67——二进制求和★ 2.1.3 LeetCode27——移除元素★ 2.2 有序顺序表及其应用 2.2.1 LeetCode26——删除有序数组中的重复项★ 2.2.2 LeetCode80——删除有序数组中的重复项Ⅱ★★ 2.2.3 LeetCode88——合并两个有序数组★ 2.2.4 LeetCode4——寻找两个正序数组的中位数★★★ 2.3 链表的实现 2.3.1 LeetCode707——设计链表★★ 2.3.2 LeetCode382——链表随机结点★★ 2.4 单链表及其应用 2.4.1 LeetCode203——移除链表元素★ 2.4.2 LeetCode237——删除链表中的结点★ 2.4.3 LeetCode206——翻转链表★ 2.4.4 LeetCode92——翻转链表Ⅱ★★ 2.4.5 LeetCode328——奇偶链表★★ 2.4.6 LeetCode86——分隔链表★★ 2.4.7 LeetCode24——两两交换链表中的结点★★ 2.4.8 LeetCode876——链表的中间结点★ 2.4.9 LeetCode234——回文链表★ 2.4.10 LeetCode143——重排链表★★ 2.4.11 LeetCode147——对链表进行插入排序★★ 2.4.12 LeetCode25——k个一组翻转链表★★★ 2.4.13 LeetCode725——分隔链表★★ 2.5 有序单链表及其应用 2.5.1 LeetCode83——删除有序链表中的重复元素★ 2.5.2 LeetCode82——删除有序链表中的重复元素Ⅱ★★ 2.5.3 LeetCode21——合并两个有序链表★ 2.5.4 LeetCode23——合并k个升序链表★★★ 第3章 栈和队列 3.1 栈的实现 3.1.1 LeetCode1381——设计一个支持增量操作的栈★★ 3.1.2 LeetCode155——最小栈★ 3.2 栈的应用 3.2.1 STL中的stack栈容器 3.2.2 LeetCode20——有效的括号★ 3.2.3 LeetCode1249——移除无效的括号★★ 3.2.4 LeetCode946——验证栈序列★★ 3.2.5 LeetCode1441——用栈操作构建数组★ 3.3 表达式求值 3.3.1 LeetCode150——逆波兰表达式求值★★ 3.3.2 LeetCode227——基本计算器Ⅱ★★ 3.3.3 LeetCode224——基本计算器★★★ 3.4 队列的实现 3.4.1 LeetCode622——设计循环队列★★ 3.4.2 LeetCode641——设计循环双端队列★★ 3.5 栈和队列相互实现 3.5.1 STL中的queue队列容器 3.5.2 LeetCode225——用队列实现栈★ 3.5.3 LeetCode232——用栈实现队列★ 第4章 串 4.1 基本串操作 4.1.1 LeetCode125——验证回文串★ 4.1.2 LeetCode14——最长公共前缀★ 4.1.3 LeetCode443——压缩字符串★★ 4.2 串模式匹配 4.2.1 LeetCode28——实现strStr()★ 4.2.2 LeetCode459——重复的子字符串★ 4.2.3 LeetCode1408——数组中的字符串匹配★ 第5章 递归 5.1 简单递归算法设计 5.1.1 LeetCode509——斐波那契数★ 5.1.2 LeetCode50——Pow(x,n)★★ 5.1.3 LeetCode206——翻转链表★ 5.1.4 LeetCode234——回文链表★ 5.1.5 LeetCode24——两两交换链表中的结点★★ 5.2 复杂递归算法设计 5.2.1 LeetCode59——螺旋矩阵Ⅱ★★ 5.2.2 LeetCode51——n皇后 第6章 数组和矩阵 6.1 数组 6.1.1 LeetCode485——最大连续1的个数★ 6.1.2 LeetCode169——多数元素★ 6.1.3 LeetCode283——移动零★ 6.2 矩阵 6.2.1 LeetCode867——转置矩阵★ 6.2.2 LeetCode1572——矩阵对角线元素的和★ 6.2.3 LeetCode566——重塑矩阵★ 6.2.4 LeetCode766——托普利茨矩阵★ 第7章 树和二叉树 7.1 二叉树的先序、中序和后序遍历 7.1.1 二叉树的存储结构及其创建 7.1.2 LeetCode144——二叉树的先序遍历★★ 7.1.3 LeetCode94——二叉树的中序遍历★★ 7.1.4 LeetCode145——二叉树的后序遍历★★ 7.2 二叉树的层次遍历 7.2.1 LeetCode102——二叉树的层次遍历★★ 7.2.2 LeetCode107——二叉树的层次遍历Ⅱ★★ 7.3 二叉树遍历算法的应用 7.3.1 LeetCode872——叶子相似的树★ 7.3.2 LeetCode617——合并二叉树★ 7.3.3 LeetCode236——二叉树的最近公共祖先★★ 7.3.4 LeetCode226——翻转二叉树★ 7.3.5 LeetCode114——二叉树展开为链表★★ 7.3.6 LeetCode104——二叉树的最大深度★ 7.3.7 LeetCode111——二叉树的最小深度★ 7.3.8 LeetCode993——二叉 |