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

本书特色

[

本书基于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 迷宫求解:分析和设计1625.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

封面

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

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

作者:裘宗燕

页数:343

定价:¥45.0

出版社:机械工业出版社

出版日期:2016-01-01

ISBN:9787111521181

PDF电子书大小:142MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注