数据结构与算法:Python语言描述

数据结构与算法:Python语言描述【数据结构与算法:Python语言描述】一本有关数据结构和算法的优秀译本 , 使用Python语言进行描述 , 内容详尽 。
基本介绍书名:《数据结构与算法:Python语言描述》
作者:裘宗燕
ISBN:9787111521181
类别:数据结构 , 算法 , Python , 编程
定价:45
出版社:机械工业出版社
出版时间:2017-07-13
装帧:平装
开本:16开
基本信息数据结构与算法:Python语言描述书号:52118ISBN:978-7-111-52118-1作者:裘宗燕印次:1-4开本:16开字数:563千字定价:45.0所属丛书:面向CS2013计算机专业规划教材出版日期:2017-07-13内容简介本书基于Python语言介绍了数据结构与算法的基本知识 , 主要内容包括抽象数据类型和Python面向对象程式设计、线性表、字元串、栈和伫列、二叉树和树、集合、排序以及算法的基本知识 。本书延续问题求解的思路 , 从解决问题的目标来组织教学内容 , 注重理论与实践的并用 。目录信息前言第1章绪论11.1计算机问题求解11.1.1程式开发过程11.1.2 一个简单例子31.2 问题求解:交叉路口的红绿灯安排41.2.1问题分析和严格化51.2.2图的顶点分组和算法61.2.3算法的精化和Python描述71.2.4讨论81.3算法和算法分析101.3.1问题、问题实例和算法101.3.2算法的代价及其度量141.3.3算法分析191.3.4Python程式的计算代价(複杂度)211.4数据结构231.4.1数据结构及其分类241.4.2计算机记忆体对象表示261.4.3Python对象和数据结构30练习32第2章抽象数据类型和Python类342.1抽象数据类型342.1.1数据类型和数据构造342.1.2抽象数据类型的概念362.1.3抽象数据类型的描述372.2Python的类392.2.1有理数类392.2.2类定义进阶402.2.3本书採用的ADT描述形式432.3类的定义和使用442.3.1类的基本定义和使用442.3.2实例对象:初始化和使用452.3.3几点说明472.3.4继承492.4Python异常532.4.1异常类和自定义异常532.4.2异常的传播和捕捉542.4.3内置的标準异常类542.5类定义实例:学校人事管理系统中的类552.5.1问题分析和设计562.5.2人事记录类的实现572.5.3讨论62本章总结63练习64第3章线性表663.1线性表的概念和表抽象数据类型663.1.1表的概念和性质663.1.2表抽象数据类型673.1.3线性表的实现:基本考虑693.2顺序表的实现693.2.1基本实现方式693.2.2顺序表基本操作的实现713.2.3顺序表的结构743.2.4Python的list763.2.5顺序表的简单总结783.3连结表793.3.1线性表的基本需要和连结表793.3.2单鍊表793.3.3单鍊表类的实现843.4鍊表的变形和操作883.4.1单鍊表的简单变形883.4.2循环单鍊表913.4.3双鍊表923.4.4两个鍊表操作953.4.5不同鍊表的简单总结983.5表的套用993.5.1Josephus问题和基于“数组”概念的解法993.5.2基于顺序表的解1003.5.3基于循环单鍊表的解101本章总结102练习103第4章 字元串1074.1 字元集、字元串和字元串操作1074.1.1 字元串的相关概念1074.1.2 字元串抽象数据类型1094.2 字元串的实现1094.2.1 基本实现问题和技术1094.2.2 实际语言里的字元串1104.2.3 Python的字元串1114.3 字元串匹配(子串查找)1124.3.1 字元串匹配1124.3.2 串匹配和朴素匹配算法1134.3.3 无回溯串匹配算法(KMP算法)1154.4 字元串匹配问题1194.4.1 串匹配/搜寻的不同需要1204.4.2 一种简化的正则表达式1224.5 Python正则表达式1234.5.1 概况1244.5.2 基本情况1244.5.3 主要操作1254.5.4 正则表达式的构造1264.5.5 正则表达式的使用132本章总结132练习133第5章 栈和伫列1355.1 概述1355.1.1 栈、伫列和数据使用顺序1355.1.2 套用环境1365.2 栈:概念和实现1365.2.1 栈抽象数据类型1375.2.2 栈的顺序表实现1375.2.3 栈的连结表实现1395.3 栈的套用1405.3.1 简单套用:括弧匹配问题1405.3.2 表达式的表示、计算和变换1425.3.3 栈与递归1495.4 伫列1555.4.1 伫列抽象数据类型1555.4.2 伫列的连结表实现1555.4.3 伫列的顺序表实现1565.4.4 伫列的list实现1585.4.5 伫列的套用1605.5 迷宫求解和状态空间搜寻1625.5.1 迷宫求解:分析和设计162 5.5.2 求解迷宫的算法1645.5.3 迷宫问题和搜寻1675.6 几点补充1715.6.1 几种与栈或伫列相关的结构1715.6.2 几个问题的讨论172本章总结173练习173第6章 二叉树和树1766.1 二叉树:概念和性质1766.1.1 概念和性质1776.1.2 抽象数据类型1816.1.3 遍历二叉树1816.2 二叉树的list实现1836.2.1 设计和实现1836.2.2 二叉树的简单套用:表达式树1856.3 优先伫列1886.3.1 概念1886.3.2 基于线性表的实现1896.3.3 树形结构和堆1916.3.4 优先伫列的堆实现1926.3.5 堆的套用:堆排序1956.4 套用:离散事件模拟1966.4.1 通用的模拟框架1976.4.2 海关检查站模拟系统1986.5 二叉树的类实现2026.5.1 二叉树结点类2036.5.2 遍历算法2046.5.3 二叉树类2086.6 哈夫曼树2096.6.1 哈夫曼树和哈夫曼算法2096.6.2 哈夫曼算法的实现2106.6.3 哈夫曼编码2116.7 树和树林2126.7.1 实例和表示2136.7.2 定义和相关概念2136.7.3 抽象数据类型和操作2156.7.4 树的实现2166.7.5 树的Python实现218本章总结220练习220第7章图2247.1概念、性质和实现2247.1.1 定义和图示2247.1.2 图的一些概念和性质2257.1.3 图抽象数据类型2277.1.4 图的表示和实现2287.2 图结构的Python实现2317.2.1 邻接矩阵实现2317.2.2 压缩的邻接矩阵(邻接表)实现2337.2.3 小结2357.3 基本图算法2357.3.1 图的遍历2367.3.2 生成树2387.4 最小生成树2407.4.1 最小生成树问题2407.4.2 Kruskal算法2407.4.3 Prim算法243*7.4.4 Prim算法的改进2467.4.5 最小生成树问题2477.5 最短路径2487.5.1 最短路径问题2487.5.2 求解单源点最短路径的Dijkstra算法2487.5.3 求解任意顶点间最短路径的Floyd算法2527.6 AOV/AOE网及其算法2557.6.1 AOV网、拓扑排序和拓扑序列2557.6.2 拓扑排序算法2577.6.3 AOE网和关键路径2587.6.4 关键路径算法259本章总结261 练习262第8章 字典和集合2658.1 数据存储、检索和字典2658.1.1 数据存储和检索2658.1.2 字典实现的问题2678.2 字典线性表实现2698.2.1 基本实现2698.2.2 有序线性表和二分法检索2708.2.3 字典线性表总结2728.3 散列和散列表2738.3.1 散列的思想和套用2738.3.2 散列函式2758.3.3 冲突的内消解:开地址技术2778.3.4 外消解技术2808.3.5 散列表的性质2808.4 集合2828.4.1 集合的概念、运算和抽象数据类型2828.4.2 集合的实现2838.4.3 特殊实现技术:位向量实现2858.5 Python的标準字典类dict和set2868.6 二叉排序树和字典2878.6.1 二叉排序树2888.6.2 最佳二叉排序树2958.6.3 一般情况的最佳二叉排序树2978.7 平衡二叉树3028.7.1 定义和性质3028.7.2 AVL树类3038.7.3 插入操作3048.7.4 相关问题3108.8 动态多分支排序树3118.8.1 多分支排序树3118.8.2 B树3128.8.3 B+ 树314本章总结315练习316第9章 排序3199.1 问题和性质3199.1.1 问题定义3199.1.2 排序算法3209.2 简单排序算法3239.2.1 插入排序3239.2.2 选择排序3259.2.3 交换排序3279.3 快速排序3289.3.1 快速排序的表实现3299.3.2 程式实现3309.3.3 複杂度3319.3.4 另一种简单实现3329.4 归併排序3329.4.1 顺序表的归併排序3339.4.2 归併算法的设计问题3339.4.3 归併排序函式定义3339.4.4 算法分析3359.5 其他排序方法3359.5.1 分配排序和基数排序3359.5.2 一些与排序有关的问题3389.5.3 Python系统的list排序339本章总结340练习342参考文献344