新書推薦:
《
偿还:债务与财富的阴暗面
》
售價:HK$
80.2
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:HK$
94.4
《
封建社会农民战争问题导论(光启文库)
》
售價:HK$
68.4
《
虚弱的反攻:开禧北伐
》
售價:HK$
92.0
《
中华内丹学典籍丛书:古书隐楼藏书汇校(上下)
》
售價:HK$
257.2
《
辞源.修订本(建国60周年纪念版)(全二册)
》
售價:HK$
1477.6
《
泰山:一种中国信仰专论(法国汉学经典译丛)
》
售價:HK$
81.4
《
金石录(一函一册)(宋刻大系)
》
售價:HK$
469.6
內容簡介:
数据结构与算法设计相关课程是计算机专业教学中的核心课程,也是各类程序设计竞赛及互联网公司与软件企业招聘考查的重要方面。本书按照”数据结构—算法设计”的路线系统地介绍数据结构与算法设计的主要内容。其中,数据结构部分包括线性表、栈、队列、字符串、数组、广义表、树和图,以及两种常用的数据操作——查找和排序;算法设计部分包括递归与分治法、动态规划、贪心法、回溯法和分支限界法;最后以”快递超市信息管理系统”作为案例介绍面向实际应用开展分析、设计、编码与测试的完整过程。 本书融入了思政元素,注重培养学习者解决问题的思维能力,拥有丰富且形式多样的习题,能够同时满足数据结构与算法设计的教学和学习需求。 本书可以作为高等院校计算机科学与技术、软件工程、信息安全、智能科学与技术、物联网工程等计算机相关专业的本科生教材,也可以作为从事计算机应用开发的工程技术人员的参考用书。
關於作者:
王新宇,江苏大学计算机科学与通信工程学院,副教授。著作出版及论文发表情况:论著:(1)计算机视觉概论与操作实践,2019年12月,江苏凤凰科学技术出版社;(2)模式识别基础理论及其计算机视觉应用,2020年7月,西安电子科技大学出版社;主要论文:(1)A Zero-Watermarking Scheme for Three-Dimensional Mesh Models Based on Multi-Features, Multimedia Tools and Applications,2019,78卷第19期,SCI;(2)构造顶点分布特征的三维模型数字水印算法,计算机辅助设计与图形学学报, 2014,26卷第2期,EI;(3)数据结构课程思政教学设计与实践,计算机教育,2021,第1期。主要教学经历:C程序设计,2001年-2008年;C++程序设计,2006年-2010年;计算方法;2003年-至今;计算机图形学,2002年-至今;数据结构,2011年-至今。承担的主要教研项目:面向新工科的多维融合、多方协同的计算机专业人才培养研究与实践,江苏大学2017年高等教育教改研究课题(2017JGYB015)。承担的主要科研项目及获奖情况:主要科研项目:(1)基于模型自适应修正和协同决策的说话人鲁棒语音情感识别方法研究,国家自然科学基金(61003183);(2)面向版权保护的三维模型鲁棒数字水印算法研究,高等学校博士学科点专项科研基金(20113227110021);(3)三维模型鲁棒数字水印算法研究,江苏省研究生科研创新计划项目(CX10B_273Z);科研获奖:音视频内容分析及其在行为监控与展现中的应用,江苏省科学技术进步三等奖,2018年。
目錄 :
第1章 绪论11.1 数据结构的研究内容11.2 数据结构的概念41.2.1 基本术语41.2.2 数据结构的三个要素51.3 算法的定义和评价71.3.1 算法的定义71.3.2 算法的评价71.4 算法性能分析81.4.1 算法的时间复杂度分析81.4.2 算法的空间复杂度分析111.5 算法的设计与描述111.5.1 算法设计的一般步骤111.5.2 算法设计的基本策略121.5.3 算法的描述131.6 本章小结14习题一15第2章 线性表182.1 线性表的定义及基本操作182.2 线性表的顺序表示和实现192.2.1 顺序表的定义192.2.2 顺序表的类模板定义202.2.3 顺序表基本操作的实现202.3 线性表的链式表示和实现252.3.1 单链表252.3.2 单循环链表322.3.3 双向循环链表332.3.4 静态链表372.4 线性表的应用412.5 本章小结45习题二46第3章 栈和队列493.1 栈503.1.1 栈的定义503.1.2 顺序栈513.1.3 链栈543.2 栈的应用583.3 队列653.3.1 队列的定义663.3.2 循环队列663.3.3 链队列723.4 队列的应用763.5 本章小结82习题三82第4章 字符串、数组和广义表864.1 字符串874.1.1 字符串的定义874.1.2 C++字符串操作884.1.3 模式匹配884.2 数组934.2.1 数组的定义934.2.2 数组的顺序存储结构934.3 特殊矩阵的压缩存储954.3.1 对称矩阵和三角矩阵954.3.2 带状矩阵964.3.3 稀疏矩阵974.4 广义表1014.5 本章小结101习题四102第5章 树1055.1 树的定义与术语1065.1.1 树的定义1065.1.2 树的术语1075.1.3 树的表示方法1075.1.4 树的基本操作1085.2 二叉树1085.2.1 二叉树的定义1085.2.2 二叉树的性质1095.2.3 二叉树的基本操作1105.3 二叉树的存储结构1115.3.1 二叉树的顺序存储结构1115.3.2 二叉树的链式存储结构1125.3.3 二叉树的二叉链表类模板定义1125.4 二叉树的遍历1155.4.1 先序遍历1165.4.2 中序遍历1165.4.3 后序遍历1175.4.4 层次遍历1175.4.5 基于遍历的操作1185.5 线索二叉树1215.5.1 线索二叉树的定义1215.5.2 中序线索二叉树类模板定义1225.6 二叉树的应用1265.6.1 堆1275.6.2 哈夫曼树1335.7 树和森林1365.7.1 树的存储结构1365.7.2 树、森林和二叉树的转换1385.7.3 树的遍历1415.7.4 森林的遍历1415.8 本章小结142习题五142第6章 图1466.1 图的定义与术语1466.1.1 图的定义1466.1.2 图的术语1476.1.3 图的基本操作1496.2 图的存储结构1496.2.1 邻接矩阵1506.2.2 邻接表1566.2.3 邻接多重表1646.2.4 十字链表1656.3 图的遍历1666.3.1 深度优先遍历1666.3.2 广度优先遍历1686.4 图的应用1706.4.1 最小生成树1706.4.2 最短路径1736.4.3 活动网络1776.5 本章小结184习题六185第7章 查找1897.1 查找的基本概念1897.2 线性表的查找1917.2.1 顺序查找1917.2.2 折半查找1937.2.3 索引查找1957.3 树表查找1987.3.1 二叉排序树1987.3.2 平衡二叉树2067.3.3 B-树与B+树2137.4 散列查找2187.4.1 散列表的概念2187.4.2 散列函数的构造方法2197.4.3 解决冲突的方法2227.4.4 散列查找及其性能分析2247.5 本章小结227习题七228第8章 排序2318.1 排序的基础知识2328.2 交换排序2338.2.1 冒泡排序2338.2.2 快速排序2358.3 插入排序2378.3.1 直接插入排序2378.3.2 折半插入排序2398.3.3 希尔排序2408.4 选择排序2418.4.1 简单选择排序2428.4.2 堆排序2438.5 归并排序2458.5.1 两路归并算法2458.5.2 两路归并排序2478.6 基数排序2488.6.1 多关键字排序2488.6.2 链式基数排序2498.7 排序方法的比较2528.8 本章小结253习题八253第9章 递归与分治法2569.1 递归程序设计2569.1.1 递归的定义2569.1.2 递归的适用条件2579.1.3 递归的程序设计2599.1.4 递归的优缺点2649.2 分治法2659.2.1 分治法的基本思想2659.2.2 分治法的适用条件2669.2.3 分治法的设计步骤2669.3 分治法的应用实例2679.3.1 选择问题2679.3.2 排序问题2729.3.3 大整数的乘法2739.3.4 Strassen矩阵乘法2769.3.5 棋盘覆盖问题2789.3.6 循环赛日程安排2819.4 本章小结284习题九284第10章 动态规划28610.1 动态规划概述28610.1.1 动态规划的基本思想28610.1.2 动态规划的适用条件28710.1.3 动态规划的设计步骤28910.2 动态规划的应用实例29110.2.1 矩阵连乘问题29110.2.2 投资问题29510.2.3 0-1背包问题29910.2.4 最长公共子序列问题30310.3 本章小结308习题十308第11章 贪心法31011.1 贪心法概述31011.1.1 贪心法的基本思想31011.1.2 贪心法的适用条件31111.1.3 贪心法和动态规划的区别31211.1.4 贪心法的设计算法的步骤31211.1.5 贪心算法的正确性证明31311.2 贪心法的应用实例31311.2.1 活动安排问题31311.2.2 最优装载问题31611.2.3 背包问题31811.3 本章小结321习题十一321第12章 回溯法32312.1 回溯法概述32312.1.1 问题的解空间32312.1.2 回溯法的基本思想32512.1.3 回溯法的设计步骤与算法 框架32712.1.4 子集树与排列树32812.1.5 回溯法的适用条件33012.2 回溯法的应用实例33112.2.1 0-1背包问题33112.2.2 装载问题33512.2.3 n皇后问题33912.2.4 旅行商问题34212.3 本章小结346习题十二346第13章 分支限界法34813.1 分支限界法概述34813.1.1 分支限界法的基本思想34813.1.2 分支限界法的三个关键 问题34913.1.3 分支限界法的设计步骤35013.1.4 分支限界法的时间性能35013.1.5 分支限界法的适用条件35013.2 分支限界法的应用实例35113.2.1 0-1背包问题35113.2.2 旅行商问题35813.2.3 流水作业调度36013.2.4 单源点最短路径问题36513.3 本章小结367习题十三367第14章 快递超市信息管理系统36914.1 问题描述36914.2 需求分析370 14.3 概要设计37014.3.1 模块设计37014.3.2 界面设计37114.3.3 类和数据结构设计37114.4 详细设计37314.4.1 类的详细设计37314.4.2 系统功能的详细设计37614.5 编码37714.6 测试38614.7 本章小结391习题十四391参考文献392