新書推薦:
《
汗青堂丛书144·决战地中海
》
售價:NT$
765.0
《
逝去的武林(十周年纪念版 武学宗师 口述亲历 李仲轩亲历一九三零年代武人言行录)
》
售價:NT$
250.0
《
唐代冠服图志(百余幅手绘插画 图解唐代各类冠服 涵盖帝后 群臣 女官 士庶 军卫等 展现唐代社会风貌)
》
售價:NT$
398.0
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:NT$
505.0
《
纯粹·古代中国的历史与制度
》
售價:NT$
286.0
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:NT$
265.0
|
編輯推薦: |
本书助您掌握Python数据结构与算法,精通Python语言编程。
本书配套示例源码、PPT课件、开发环境、微课同步教学视频、作者QQ群答疑。
本书适合想要精通Python编程的初学者和技术人员,包括Web开发、网络爬虫、游戏开发、自动化运维、人工智能、大数据等方向的从业人员。
本书可作为高等院校计算机、软件工程、大数据等相关专业学生学习数据结构与算法的教材。
|
內容簡介: |
数据结构与算法是计算机、软件工程、大数据、人工智能等专业非常重要的一门专业基础和核心课程。本书内容全面,通俗易懂,所选案例典型,结构清晰,重点难点突出,所有算法均采用Python实现,示例可直接运行。本书配套示例源码、PPT课件、教学视频、教学大纲、作者QQ群答疑服务。
本书共分8章,内容包括数据结构与算法概述,线性表,栈和队列,串、数组与广义表,树和二叉树,图,查找,排序。
本书适合Python数据结构与算法的初学者、Python软件开发人员,可作为备考计算机专业研究生和软考人员学习数据结构与算法的参考书,也可作为高等院校计算机、软件工程、大数据等相关专业学生学习数据结构与算法的教材。
|
關於作者: |
孙玉胜,郑州轻工业大学教授、硕士生导师。电子信息工程国家专业建设点负责人,《Python 程序设计》省级课程负责人。出版《C/C 函数与算法速查宝典》等教材多部,目前从事电子信息、软件工程专业教学和科研工作。
陈锐,郑州轻工业大学校聘副教授、硕士生导师,博士。中国人工智能学会情感智能专委会委员、中国图象图形学学会人机交互专委会委员。有多年教学实践经验,熟悉数据结构与算法等内容,出版相关图书:《Python机器学习实践》《数据结构习题精解(C语言实现 微课视频)》《数据结构(C语言实现)》《零基础学数据结构》《C/C 函数与算法速查大辞典》。
张志锋,郑州轻工业大学教授、硕士生导师。主持省教改项目多项,获省高等教学成果奖一等奖1项,二等奖1项,指导多名学生获得学科竞赛国家级奖项,主编《Java程序设计与项目实训教程》《JSP程序设计与项目实训教程》《Web框架技术》等多部教材,并获批省立项建设。
|
目錄:
|
第1章 数据结构与算法概述
1.1 为什么要学习数据结构
1.2 基本概念和术语
1.3 数据的逻辑结构与存储结构
1.3.1 逻辑结构
1.3.2 存储结构
1.4 抽象数据类型及其描述
1.4.1 什么是抽象数据类型
1.4.2 抽象数据类型的描述
1.5 算法
1.5.1 数据结构与算法的关系
1.5.2 什么是算法
1.5.3 算法的五大特性
1.5.4 算法的描述
1.6 算法分析
1.6.1 算法设计的4个目标
1.6.2 算法效率评价
1.6.3 算法时间复杂度
1.6.4 算法的空间复杂度
1.7 学好数据结构的秘诀
1.8 习题
第2章 线性表
2.1 线性表的概念及运算
2.1.1 线性表的逻辑结构
2.1.2 线性表的抽象数据类型
2.2 线性表的顺序表示与实现
2.2.1 线性表的顺序存储
2.2.2 顺序表的基本运算
2.2.3 基本操作算法分析
2.2.4 顺序表的应用举例
2.3 线性表的链式表示与实现
2.3.1 单链表的存储结构
2.3.2 单链表上的基本运算
2.3.3 单链表应用举例
2.3.4 循环单链表
2.3.5 双向链表
2.5 一元多项式的表示与相乘
2.5.1 一元多项式的表示
2.5.2 一元多项式相乘
2.6 小结
第3章 栈与队列
3.1 栈的表示与实现
3.1.1 栈的定义
3.1.2 栈的抽象数据类型
3.1.3 顺序栈
3.1.4 链栈
3.2 栈的应用
3.2.1 数制转换
3.2.2 行编辑程序
3.2.3 算术表达式求值
3.3 栈与递归
3.3.1 递 归
3.3.2 消除递归
3.4 队列的表示与实现
3.4.1 队列的定义
3.4.2 队列的抽象数据类型
3.4.3 顺序队列
3.4.4 顺序循环队列
3.4.5 双端队列
3.4.6 链式队列
3.5 队列的应用
3.5.1 队列在杨辉三角中的应用
3.5.2 队列在回文中的应用
3.6 小 结
第4章 串、数组与广义表
4.1 串的定义及抽象数据类型
4.1.1 什么是串
4.1.2 串的抽象数据类型
4.2 串的存储表示
4.2.1 串的顺序存储结构
4.2.2 串的链式存储结构
4.2.3 顺序串应用举例
4.3 串的模式匹配
4.3.1 朴素模式匹配算法——模式匹配算法Brute-Force
4.3.2 KMP算法
4.3.3 模式匹配应用举例
4.4 数组的定义及抽象数据类型
4.4.1 数组的基本概念
4.4.2 数组的顺序存储结构
4.4.3 特殊矩阵的压缩存储
4.4.4 稀疏矩阵的压缩存储
4.5 广义表
4.5.1 什么是广义表
4.5.2 广义表的抽象数据类型
4.5.3 广义表的头尾链表表示
4.5.4 广义表的扩展线性链表表示
4.6 小结
第5章 树
5.1 树
5.1.1 树的定义
5.1.2 树的逻辑表示
5.1.2 树的抽象数据类型
5.2 二叉树
5.2.1 二叉树的定义
5.2.2 二叉树的性质
5.2.3 二叉树的抽象数据类型
5.2.4 二叉树的存储表示
5.3 二叉树的遍历
5.3.1 二叉树遍历的定义
5.3.2 二叉树的先序遍历
5.3.3 二叉树的中序遍历
5.3.4 二叉树的后序遍历
5.4 二叉树的线索化
5.4.1 二叉树的线索化定义
5.4.2 二叉树的线索化
5.4.3 线索二叉树的遍历
5.4.4 线索二叉树的应用举例
5.5 树、森林与二叉树
5.5.1 树的存储结构
5.5.2 树转换为二叉树
5.5.3 森林转换为二叉树
5.5.4 二叉树转换为树和森林
5.5.5 树和森林的遍历
5.6 哈夫曼树
5.6.1 哈夫曼树的定义
5.6.2 哈夫曼编码
5.6.3 哈夫曼编码算法的实现
5.7 小 结
习 题
第6章 图
6.1 图的定义与相关概念
6.1.1 图的定义
6.1.2 图的相关概念
6.1.3 图的抽象数据类型
6.2 图的存储结构
6.2.1 邻接矩阵表示法
6.2.2 邻接表表示法
6.2.3 十字链表
6.2.4 邻接多重表
6.3 图的遍历
6.3.1 图的深度优先遍历
6.3.2 图的广度优先遍历
6.4 图的连通性问题
6.4.1 无向图的连通分量与生成树
6.4.2 最小生成树
6.5 有向无环图
6.5.1 AOV网与拓扑排序
6.5.2 AOE网与关键路径
6.6 最短路径
6.6.1 从某个顶点到其余各顶点的最短路径
6.6.2 每一对顶点之间的最短路径
6.7 图的应用举例
6.7.1 距离某个顶点的最短路径长度为k的所有顶点
6.7.2 求图中顶点u到顶点v的简单路径
6.8 小结
第7章 查找
7.1 查找的基本概念
7.2 静态查找
7.2.1 顺序表的查找
7.2.2 有序顺序表的查找
7.2.3 索引顺序表的查找
7.3 动态查找
7.3.1 二叉排序树
7.3.2 平衡二叉树
7.4 B-树与B 树
7.4.1 B-树
7.4.2 B 树
7.5 哈希表
7.5.1 哈希表的定义
7.5.2 哈希函数的构造方法
7.5.3 处理冲突的方法
7.5.4 哈希表应用举例
7.6 小 结
第8章 排序
8.1 排序的基本概念
8.2 插入排序
8.2.1 直接插入排序
8.2.2 折半插入排序
8.2.3 希尔排序
8.2.4 插入排序应用举例
8.3 选择排序
8.3.1 简单选择排序
8.3.2 堆排序
8.4 交换排序
8.4.1 冒泡排序
8.4.2 快速排序
8.4.3 交换排序应用举例
8.5 归并排序
8.6 基数排序
8.6.1 基数排序算法
8.6.2 基数排序应用举例
8.7 小 结
参考文献
|
內容試閱:
|
数据结构是高等院校计算机科学与技术、软件工程、大数据、人工智能等专业的一门重要的专业基础课程,是算法设计与分析、人工智能、机器学习、编译原理等众多后续课程的重要基础,它对软件开发具有举足轻重的作用。目前,在使用计算机的各种软件时,都需要处理各种数据,而这些软件的设计都需要研究数据之间关系的表示与处理,这正是数据结构的研究内容。数据结构是计算机、软件工程大多数专业课程的核心基础,直接决定着其他专业课程的学习效果。通过学习数据结构,可为算法设计和软件开发等方面课程的学习打下坚实的知识基础。
本书比较系统地介绍数据结构中的线性结构、树形结构、图结构及查找、排序技术,阐述各种数据结构的逻辑关系,讨论它们在计算机中的存储表示及其运算。本书理论与实践并重,结合教学工作实际,除了对数据结构中的抽象概念和数据类型的基本运算进行详细讲解外,还通过丰富的图表和实例、完整的代码讲解算法的应用,帮助读者理解每种数据类型常见的基本操作及其具体应用案例的算法思想,使其学会运用数据结构知识解决日常生活中的实际问题。本书主张通过算法实现来强化对算法的理解,因此,不仅精选了一些涵盖知识点丰富且具有代表性的案例,还挑选了部分历年考研试题作为课后习题,所有算法均采用Python语言给出完整实现,方便读者学习和理解,从而巩固所学知识点。
由于Python语言强大的第三方工具库、开发速度快捷、擅长数据分析与处理等优势,被广泛应用于人工智能、机器学习、大数据分析与处理,且已成为最主流的开发语言之一,是数据分析与处理的首选工具。国内各高校均开设了Python语言程序设计课程,因此,本书采用Python语言作为描述语言,也为读者学习人工智能、机器学习、大数据分析与处理打下牢固的基础。
本书内容
本书共分为8章,内容分别为数据结构与算法概述,线性表,栈与队列,串、数组与广义表,树,图,查找和排序。
第1章:如果读者刚接触数据结构,这一章将告诉你数据结构是什么,以及本书的学习目标、学习方法和学习内容。另外,还介绍了本书对算法的描述方法。
第2章:主要介绍线性表。首先讲解线性表的逻辑结构,然后介绍线性表的各种常用存储结构,在每一节均给出了算法的具体应用。通过学习本章内容,读者可以掌握顺序表、动态链表的基本操作及应用。
第3章:主要介绍操作受限的线性表——栈和队列,内容包括栈的定义,栈的基本操作及栈与递归的转化,队列的概念,顺序队列和链式队列的运算。
第4章:主要介绍串、数组与广义表。串是另一种特殊的线性表,数组和队列可看作是线性表的推广。首先介绍串的概念、串的各种存储表示及串的模式匹配算法,然后介绍数组的概念、数组(矩阵)的存储结构及运算、特殊矩阵,最后介绍广义表的概念、表示与存储方式。
第5章:主要介绍非线性数据结构——树和二叉树。首先介绍树和二叉树的概念,然后介绍树和二叉树的存储表示、二叉树的性质、二叉树的遍历和线索化、树、森林与二叉树的转换及哈夫曼树。
第6章:主要介绍非线性数据结构——图。首先介绍图的概念和存储结构,然后介绍图的遍历、最小生成树、拓扑排序、关键路径及最短路径。
第7章:主要介绍数据结构的常用技术——查找。首先介绍查找的概念,然后结合具体实例介绍各种查找算法,并给出完整的实现代码。
第8章:主要介绍数据结构的常用技术——排序。首先介绍排序的相关概念,然后介绍各种排序技术,并给出具体的实现算法。
配套源码、PPT课件、教学视频等下载
本书提供配套的教学资源,包括教学视频、电子课件、示例代码、习题答案等。读者可用微信扫描下面二维码下载。如果发现问题或者有任何建议,可通过邮件与作者联系,电子邮箱为booksaga@163.com,邮件主题写“Python数据结构与算法”。
本书作者与鸣谢
参与本书编写的有孙玉胜、陈锐、张志锋、崔建涛、郑倩、刘育熙、桑永宣。
在本书的出版过程中,得到了郑州轻工业大学和清华大学出版社的大力支持,在此表示衷心感谢。尤其感谢清华大学出版社的编辑们对于本书顺利出版所做的辛勤工作。
在本书编写的过程中,参阅了大量的相关教材、著作,个别案例也参考了网络资源,在此向各位原著者致敬!
由于作者水平有限,书中难免存在一些不足之处,恳请读者批评指正。
编 者
2022年9月
|
|