正版旧书 数据结构教程(Python语言描述) 李春葆 9787302560289 清华大学出版社 二手
举报
-
出版时间:
2020-11
-
装帧:
平装
-
开本:
16开
-
ISBN:
9787302560289
-
出版时间:
2020-11
售价
¥
6.60
0.9折
定价
¥69.80
品相
七品
上书时间2025-12-18
卖家超过10天未登录
-
-
商品描述:
-
前言
数据结构课程是计算机及相关专业的核心专业基础课程。数据结构是指存在相互关系的数据元素集合,并包含相应的数据运算。从数据结构的应用角度看,人们不必关心数据的存储和运算的具体实现细节,将其作为一个功能包用于求解更复杂的问题,这样能在适当的抽象层次上考虑程序的结构和算法; 从数据结构的实现角度看,则需要考虑数据的逻辑类型,将这些数据以某种合理的方式存储在计算机中,继而高效地实现对应运算的算法。
教学内容设计 数据结构课程主要以数据的逻辑结构为主线,介绍线性表、栈和队列、树和二叉树、图等各种数据结构的实现和应用,一方面培养学生的基本数据结构观,即从逻辑层面理解各种数据结构的逻辑结构特征以及基本运算,继而合理地实现数据结构,使之成为像程序设计语言中那样直接可以使用的数据类型; 另一方面培养学生运用各种数据结构的能力,即针对一个较复杂的数据处理问题选择合适的数据结构设计出好的求解算法。 本书围绕这两个目标设计教学内容,总结编者长期在教学*线的教学研究和教学经验,同时参考近年来国内外出版的多种数据结构教材,考虑教与学的特点,合理地进行知识点的取舍和延伸,精心组织编写而成。本书采用Python语言描述数据结构和算法。本书由9章构成,各章的内容如下: 第1章绪论。本章介绍数据结构的基本概念、采用Python语言描述算法的方法和特点、算法分析方法和如何设计算法等。
第2章线性表。本章介绍线性表的定义、线性表的两种主要存储结构和各种基本运算算法设计,*后通过示例讨论线性表的应用。
第3章栈和队列。本章介绍栈的定义、栈的存储结构、栈的各种基本运算算法设计和栈的应用; 队列的定义、队列的存储结构、队列的各种基本运算算法设计和队列的应用; Python中的deque和heapq及其使用。 第4章串和数组。本章介绍串的定义、串的存储结构、串的各种基本运算算法设计、串的模式匹配BF和KMP算法及其应用
; 数组的定义、数组的存储方法、几种特殊矩阵的压缩存储和稀疏矩阵的压缩存储。
第5章递归。本章介绍递归的定义、递归模型、递归算法设计和分析方法。
第6章树和二叉树。本章介绍树的定义、树的逻辑表示方法、树的性质、树的遍历和树的存储结构; 二叉树的定义、二叉树的性质、二叉树的存储结构、二叉树的基本运算算法设计、二叉树的递归和非递归遍历算法、二叉树的构造、线索二叉树和哈夫曼树、树/森林和二叉树的转换与还原过程、树算法设计和并查集的应用。 第7章图。本章介绍图的定义、图的存储结构、图的基本运算算法设计、图的两种遍历算法以及图的应用(包括图的*小生成树、*短路径、拓扑排序和关键路径等)。 第8章查找。本章介绍查找的定义、线性表上的各种查找算法、树表上的各种查找算法以及哈希表查找算法及其应用。 第9章排序。本章介绍排序的定义、插入排序方法、交换排序方法、选择排序方法、归并排序方法和基数排序方法,
以及各种内排序方法的比较、外排序过程和相关算法。
本书教学内容紧扣《高等学校计算机专业核心课程教学实施方案》和《计算机学科硕士研究生入学考试大纲》,涵盖教学方案及考研大纲要求的全部知识点。书中带“*”的章节与示例为选讲或选学内容,难度相对较高,供提高者研习。本书的主要特点如下。
结构清晰,内容丰富,文字叙述简洁明了,可读性强。
图文并茂,全书用了300多幅图来表述和讲解数据的组织结构与算法设计思想。
力求归纳各类算法设计的规律,例如单链表算法中很多是基于建表算法,二叉树算法中很多是基于4种遍历算法,图算法中很多是基于两种遍历算法,如果读者掌握了相关的基础算法,那么对于较复杂的算法设计就会驾轻就熟。
深入讨论递归算法设计方法。递归算法设计是数据结构课程中的难点之一,编者从递归模型入手,介绍了从求解问题中提取递归模型的通用方法,讲解了从递归模型到递归算法设计的基本规律。
书中提供了大量的教学示例,将抽象概念和抽象的算法过程具体化。
与Python语言深度结合,充分利用Python语言中数据类型灵活的特点实现书中的所有算法,所有算法及其示例均在Python 3.7中调试通过。
教学实验设计 本书配套的辅助教材《数据结构教程(Python语言描述)学习与上机实验指导》提供了所有练习题和实验题的参考答案,其中所有在线编程题均在相关平台中验证通过。 为了方便教师教学和学生学习,本书提供了全面、丰富的教学资源,配套教学资源包中的内容如下。
(1) 教学PPT: 提供全部教学内容的精美PPT课件,仅供任课教师在教学中使用。
(2) 源程序代码: 所有源代码按章组织,例如ch2文件夹中存放第2章的源代码,其
“示例”子文件夹中是相关示例的源代码文件,例如ch2的“示例”子文件夹中的Exam23.py是例2.3的源代码。
(3) 数据结构课程教学大纲: 包含32/48/60课堂讲授学时的教学内容安排和相应的实验教学内容安排,供教师参考。
(4) 练习题中算法设计题源代码: 提供所有算法设计练习题的源程序代码,仅供任课教师在教学中使用。
(5) 配有绝大部分知识点和全部Leet Code在线编程题讲解
的教学视频,视频采用微课碎片化形式组织(含238个小视频,累计超过40小时)。 资源下载提示
商品简介
本书系统地介绍了各种常用的数据结构以及查找和排序的各种算法,阐述了各种数据结构的逻辑关系、存储表示及基本运算,并采用Python语言描述数据组织和算法实现,所有算法的程序均在Python3.7中调试通过。 全书既注重原理又注重实践,配有大量图表和示例,内容丰富,概念讲解清楚,表达严谨,逻辑性强,语言精练,可读性好。
作者简介
李春葆,武汉大学计算机学院教授。主要研究方向为数据挖掘和算法设计,先后主持和参加多个大型研究项目。主要为本科生讲授数据结构(15年以上)和软件工程等课程,为研究生讲授软件开发新技术、数据仓库与数据挖掘等课程,并出版十多部精品著作。
目录
第1章绪论1.1什么是数据结构1.1.1数据结构的定义1.1.2数据的逻辑结构1.1.3数据的存储结构1.1.4数据的运算1.1.5数据结构和数据类型1.2算法及其描述1.2.1什么是算法1.2.2算法描述1.3Python简介1.3.1Python的标准数据类型1.3.2列表的复制1.3.3输入/输出和文件操作1.3.4Python程序设计1.3.5Python中变量的作用域和垃圾回收1.4算法分析1.4.1算法的设计目标1.4.2算法的时间性能分析1.4.3算法的存储空间分析1.5数据结构的目标1.6练习题1.7上机实验题1.8LeetCode在线编程题第2章线性表2.1线性表的定义2.1.1什么是线性表2.1.2线性表的抽象数据类型描述2.2线性表的顺序存储结构2.2.1顺序表2.2.2线性表的基本运算算法在顺序表中的实现2.2.3顺序表的应用算法设计示例2.3线性表的链式存储结构2.3.1链表2.3.2单链表2.3.3单链表的应用算法设计示例2.3.4双链表2.3.5双链表的应用算法设计示例2.3.6循环链表2.4顺序表和链表的比较2.5线性表的应用——两个多项式相加2.5.1问题描述2.5.2问题求解2.6练习题2.7上机实验题2.7.1基础实验题2.7.2应用实验题2.8LeetCode在线编程题
第3章栈和队列3.1栈3.1.1栈的定义3.1.2栈的顺序存储结构及其基本运算算法的实现3.1.3顺序栈的应用算法设计示例3.1.4栈的链式存储结构及其基本运算算法的实现3.1.5链栈的应用算法设计示例3.1.6栈的综合应用3.2队列3.2.1队列的定义3.2.2队列的顺序存储结构及其基本运算算法的实现3.2.3循环队列的应用算法设计示例3.2.4队列的链式存储结构及其基本运算算法的实现3.2.5链队的应用算法设计示例3.2.6Python中的双端队列3.2.7队列的综合应用3.2.8优先队列3.3练习题3.4上机实验题3.4.1基础实验题3.4.2应用实验题3.5LeetCode在线编程题第4章串和数组4.1串4.1.1串的基本概念4.1.2串的存储结构4.1.3串的模式匹配4.2数组4.2.1数组的基本概念4.2.2特殊矩阵的压缩存储4.2.3稀疏矩阵4.3练习题4.4上机实验题4.4.1基础实验题4.4.2应用实验题4.5LeetCode在线编程题第5章递归5.1什么是递归5.1.1递归的定义5.1.2何时使用递归5.1.3递归模型5.1.4递归与数学归纳法5.1.5递归的执行过程5.1.6Python中递归函数的参数5.1.7递归算法的时空分析5.2递归算法的设计5.2.1递归算法设计的步骤5.2.2基于递归数据结构的递归算法设计5.2.3基于归纳方法的递归算法设计5.3练习题5.4上机实验题5.4.1基础实验题5.4.2应用实验题5.5LeetCode在线编程题第6章树和二叉树6.1树6.1.1树的定义6.1.2树的逻辑结构表示方法6.1.3树的基本术语6.1.4树的性质6.1.5树的基本运算6.1.6树的存储结构6.2二叉树6.2.1二叉树的概念6.2.2二叉树的性质6.2.3二叉树的存储结构6.2.4二叉树的递归算法设计6.2.5二叉树的基本运算算法及其实现6.3二叉树的先序、中序和后序遍历6.3.1二叉树遍历的概念6.3.2先序、中序和后序遍历的递归算法6.3.3递归遍历算法的应用6.4二叉树的层次遍历6.4.1层次遍历的过程6.4.2层次遍历算法的设计6.4.3层次遍历算法的应用6.5二叉树的构造6.5.1由先序/中序序列或后序/中序序列构造二叉树*6.5.2序列化和反序列化6.6线索二叉树6.6.1线索二叉树的定义6.6.2线索化二叉树6.6.3遍历线索二叉树6.7哈夫曼树6.7.1哈夫曼树的定义6.7.2哈夫曼树的构造算法6.7.3哈夫曼编码6.8二叉树与树、森林之间的转换6.8.1树到二叉树的转换及还原6.8.2森林到二叉树的转换及还原*6.9并查集6.9.1并查集的定义6.9.2并查集的实现6.10练习题6.11上机实验题6.11.1基础实验题6.11.2应用实验题6.12LeetCode在线编程题第7章图7.1图的基本概念7.1.1图的定义7.1.2图的基本术语7.2图的存储结构7.2.1邻接矩阵7.2.2邻接表7.3图的遍历7.3.1图遍历的概念7.3.2深度优先遍历7.3.3广度优先遍历7.3.4非连通图的遍历7.4图遍历算法的应用7.4.1深度优先遍历算法的应用7.4.2广度优先遍历算法的应用7.5生成树和*小生成树7.5.1生成树和*小生成树的概念7.5.2普里姆算法7.5.3克鲁斯卡尔算法7.6*短路径7.6.1*短路径的概念7.6.2狄克斯特拉算法7.6.3弗洛伊德算法7.7拓扑排序7.7.1什么是拓扑排序7.7.2拓扑排序算法的设计7.8AOE网和关键路径7.9练习题7.10上机实验题7.10.1基础实验题7.10.2应用实验题7.11LeetCode在线编程题第8章查找8.1查找的基本概念8.2线性表的查找8.2.1顺序查找8.2.2折半查找8.2.3索引存储结构和分块查找8.3树表的查找8.3.1二叉排序树8.3.2平衡二叉树8.3.3B树8.3.4B 树8.4哈希表的查找8.4.1哈希表的基本概念8.4.2哈希函数的构造方法8.4.3哈希冲突的解决方法8.4.4哈希表的查找及性能分析8.5练习题8.6上机实验题8.6.1基础实验题8.6.2应用实验题8.7LeetCode在线编程题第9章排序9.1排序的基本概念9.2插入排序9.2.1直接插入排序9.2.2折半插入排序9.2.3希尔排序9.3交换排序9.3.1冒泡排序9.3.2快速排序9.4选择排序9.4.1简单选择排序9.4.2堆排序9.4.3堆数据结构9.5归并排序9.5.1自底向上的二路归并排序9.5.2自顶向下的二路归并排序9.6基数排序9.7各种内排序方法的比较和选择9.8外排序9.8.1生成初始归并段的方法9.8.2多路归并方法9.9练习题9.10上机实验题9.10.1基础实验题9.10.2应用实验题9.11LeetCode在线编程题参考文献
【前言】本书第2、3、6、7章由李春葆编写,第1、4、5章由蒋林编写,第8、9章由李筱驰编写,李春葆完成全书的规划和统稿工作。本书的出版得到清华大学出版社计算机与信息分社
魏江江分社长的全力支持,王冰飞老师给予精心编辑,力扣(中国)网站提供了无私的帮助,编者在此一并表示衷心
的感谢。尽管编者不遗余力,但由于水平所限,本书难免存在不足之处,敬请教师和同学们批评指正,
在此表示衷心的感谢。
编者2020年8月
内容摘要
本书系统地介绍了各种常用的数据结构以及查找和排序的各种算法,阐述了各种数据结构的逻辑关系、存储表示及基本运算,并采用Python语言描述数据组织和算法实现,所有算法的程序均在Python3.7中调试通过。全书既注重原理又注重实践,配有大量图表和示例,内容丰富,概念讲解清楚,表达严谨,逻辑性强,语言精练,可读性好。
主编推荐
本书提供丰富的配套资源,包括教学大纲、教学课件、电子教案、程序源码、习题答案、教学进度表。
【内容简介】
孔网啦啦啦啦啦纺织女工火锅店第三课
开播时间:09月02日 10:30
即将开播,去预约

直播中,去观看