《数据结构与算法分析新视角》(编者:周幸妮//任智源//马彦卓//樊凯)-图书推荐
内容提要
数据结构是高等学校计算机及其相关专业的核心课程,是计算机程序设计的基础。周幸妮、任智源、马彦卓、樊凯编著的《数据结构与算法分析新视角》按照“像外行一样思考,像专家一样实践”的解决问题的思维方法,列举大量实际或工程案例,从具体问题中引出抽象概念,运用类比、图形化描述等各种方式,对经典数据结构内容做深入浅出的介绍。在介绍数据结构和算法的基本概念和算法分析方法的基础之上,从软件开发的角度,通过应用背景或知识背景介绍、数据分析、函数设计、算法设计、测试调试等环节,分别对顺序表、链表、栈、队列、串、数组、树、图等基本类型的数据结构进行了分析和讨论;介绍数据的典型操作方法,如数据排序方法和查找方法;介绍常见的如递归法、分治法、动态规划、贪心法等经典算法。本书可作为计算机及相关专业大学本科教材,也可作为应用型专业以及成人教育、工程技术人员的培训教材或自学教材。
目录
第1章 绪论
1.1 从编程说起
1.2 程序要处理的数据
1.3 数据结构的引入
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 算法的设计要求
1.6.2 算法效率的度量方法
1.7 算法性能的事前分析方法
1.7.1 问题的规模与算法的策略
1.7.2 算法效率的上限与下限
1.7.3 渐进的上限——算法的时间复杂度
1.7.4 算法时间复杂度的综合讨论
1.7.5 算法的空间效率分析方法
1.8 算法性能综合考量
1.9 本章小结
习题
第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.4.1 逆序输出单链表结点值
2.4.2 一元多项式的相加
2.5 顺序表和链表的比较
2.6 本章小结
习题
第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.6 链队列的基本操作
3.2.7 各种队列结构的比较
……
第4章 内容特殊的线性表——多维数组与字符串
第5章 结点逻辑关系分层次的非线性结构——树
第6章 结点逻辑关系任意的非线性结构——图
第7章 数据的处理方法——排序技术
第8章 数据的处理——索引与查找技术
第9章 经典算法
附录A 数据的联系图
附录B 自定义头文件的加入方法
附录C 软件设计说明书格式
参考文献