您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
数据结构与算法
装帧: 平装
出版社: 机械工业出版社
作者: 裘宗燕 著 著
出版日期: 2016-01-01
商品条码: 9787111521181
版次: 1
开本: 16开
页数: 343
出版年份: 2016
定价:
¥45
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书基于Python语言介绍了数据结构与算法的基本知识,主要包括抽象数据类型和Python面向对象程序设计、线性表、字符串、栈和队列、二叉树和树、集合、排序以及算法的基本知识。本书延续问题求解的思路,从解决问题的目标来组织教学内容,注重理论与实践的并用。
作者简介
裘宗燕,北京大学数学学院信息科学系教授。长期从事计算机软件与理论、程序设计语言和符号计算方面的研究与教学工作。已出版过多部著作和译著,包括《程序设计语言基础》(译著,北京大学出版社,1990),《Mathematics数学软件系统的应用与程序设计》(编著,北京大学出版社。1994),《C++程序设计语言(特别版)》(译著。机械工业出版社,2002),《C++语言的设计和演化》(译著,机械工业出版社,2002),《程序设计语言――概念和结构》(合译,机械工业出版社,2002),《从问题到程序――程序设计与C语言引论》(编著,机械工业出版社,2005年第1版,2011年第2版)等。
目录
前言
第1章绪论1
1.1计算机问题求解1
1.1.1程序开发过程1
1.1.2一个简单例子3
1.2问题求解:交叉路口的红绿灯安排4
1.2.1问题分析和严格化5
1.2.2图的顶点分组和算法6
1.2.3算法的精化和Python描述7
1.2.4讨论8
1.3算法和算法分析10
1.3.1问题、问题实例和算法10
1.3.2算法的代价及其度量14
1.3.3算法分析19
1.3.4Python程序的计算代价(复杂度)21
1.4数据结构23
1.4.1数据结构及其分类24
1.4.2计算机内存对象表示26
1.4.3Python对象和数据结构30
练习32
第2章抽象数据类型和Python类34
2.1抽象数据类型34
2.1.1数据类型和数据构造34
2.1.2抽象数据类型的概念36
2.1.3抽象数据类型的描述37
2.2Python的类39
2.2.1有理数类39
2.2.2类定义进阶40
2.2.3本书采用的ADT描述形式43
2.3类的定义和使用44
2.3.1类的基本定义和使用44
2.3.2实例对象:初始化和使用45
2.3.3几点说明47
2.3.4继承49
2.4Python异常53
2.4.1异常类和自定义异常53
2.4.2异常的传播和捕捉54
2.4.3内置的标准异常类54
2.5类定义实例:学校人事管理系统中的类55
2.5.1问题分析和设计56
2.5.2人事记录类的实现57
2.5.3讨论62
本章总结63
练习64
第3章线性表66
3.1线性表的概念和表抽象数据类型66
3.1.1表的概念和性质66
3.1.2表抽象数据类型67
3.1.3线性表的实现:基本考虑69
3.2顺序表的实现69
3.2.1基本实现方式69
3.2.2顺序表基本操作的实现71
3.2.3顺序表的结构74
3.2.4Python的list76
3.2.5顺序表的简单总结78
3.3链接表79
3.3.1线性表的基本需要和链接表79
3.3.2单链表79
3.3.3单链表类的实现84
3.4链表的变形和操作88
3.4.1单链表的简单变形88
3.4.2循环单链表91
3.4.3双链表92
3.4.4两个链表操作95
3.4.5不同链表的简单总结98
3.5表的应用99
3.5.1Josephus问题和基于“数组”概念的解法99
3.5.2基于顺序表的解100
3.5.3基于循环单链表的解101
本章总结102
练习103
第4章字符串107
4.1字符集、字符串和字符串操作107
4.1.1字符串的相关概念107
4.1.2字符串抽象数据类型109
4.2字符串的实现109
4.2.1基本实现问题和技术109
4.2.2实际语言里的字符串110
4.2.3Python的字符串111
4.3字符串匹配(子串查找)112
4.3.1字符串匹配112
4.3.2串匹配和朴素匹配算法113
4.3.3无回溯串匹配算法(KMP算法)115
4.4字符串匹配问题119
4.4.1串匹配/搜索的不同需要120
4.4.2一种简化的正则表达式122
4.5Python正则表达式123
4.5.1概况124
4.5.2基本情况124
4.5.3主要操作125
4.5.4正则表达式的构造126
4.5.5正则表达式的使用132
本章总结132
练习133
第5章栈和队列135
5.1概述135
5.1.1栈、队列和数据使用顺序135
5.1.2应用环境136
5.2栈:概念和实现136
5.2.1栈抽象数据类型137
5.2.2栈的顺序表实现137
5.2.3栈的链接表实现139
5.3栈的应用140
5.3.1简单应用:括号匹配问题140
5.3.2表达式的表示、计算和变换142
5.3.3栈与递归149
5.4队列155
5.4.1队列抽象数据类型155
5.4.2队列的链接表实现155
5.4.3队列的顺序表实现156
5.4.4队列的list实现158
5.4.5队列的应用160
5.5迷宫求解和状态空间搜索162
5.5.1迷宫求解:分析和设计162
5.5.2求解迷宫的算法164
5.5.3迷宫问题和搜索167
5.6几点补充171
5.6.1几种与栈或队列相关的结构171
5.6.2几个问题的讨论172
本章总结173
练习173
第6章二叉树和树176
6.1二叉树:概念和性质176
6.1.1概念和性质177
6.1.2抽象数据类型181
6.1.3遍历二叉树181
6.2二叉树的list实现183
6.2.1设计和实现183
6.2.2二叉树的简单应用:表达式树185
6.3优先队列188
6.3.1概念188
6.3.2基于线性表的实现189
6.3.3树形结构和堆191
6.3.4优先队列的堆实现192
6.3.5堆的应用:堆排序195
6.4应用:离散事件模拟196
6.4.1通用的模拟框架197
6.4.2海关检查站模拟系统198
6.5二叉树的类实现202
6.5.1二叉树结点类203
6.5.2遍历算法204
6.5.3二叉树类208
6.6哈夫曼树209
6.6.1哈夫曼树和哈夫曼算法209
6.6.2哈夫曼算法的实现210
6.6.3哈夫曼编码211
6.7树和树林212
6.7.1实例和表示213
6.7.2定义和相关概念213
6.7.3抽象数据类型和操作215
6.7.4树的实现216
6.7.5树的Python实现218
本章总结220
练习220
第7章图224
7.1概念、性质和实现224
7.1.1定义和图示224
7.1.2图的一些概念和性质225
7.1.3图抽象数据类型227
7.1.4图的表示和实现228
7.2图结构的Python实现231
7.2.1邻接矩阵实现231
7.2.2压缩的邻接矩阵(邻接表)实现233
7.2.3小结235
7.3基本图算法235
7.3.1图的遍历236
7.3.2生成树238
7.4最小生成树240
7.4.1最小生成树问题240
7.4.2Kruskal算法240
7.4.3Prim算法243
7.4.4Prim算法的改进246
7.4.5最小生成树问题247
7.5最短路径248
7.5.1最短路径问题248
7.5.2求解单源点最短路径的Dijkstra算法248
7.5.3求解任意顶点间最短路径的Floyd算法252
7.6AOV/AOE网及其算法255
7.6.1AOV网、拓扑排序和拓扑序列255
7.6.2拓扑排序算法257
7.6.3AOE网和关键路径258
7.6.4关键路径算法259
本章总结261
练习262
第8章字典和集合265
8.1数据存储、检索和字典265
8.1.1数据存储和检索265
8.1.2字典实现的问题267
8.2字典线性表实现269
8.2.1基本实现269
8.2.2有序线性表和二分法检索270
8.2.3字典线性表总结272
8.3散列和散列表273
8.3.1散列的思想和应用273
8.3.2散列函数275
8.3.3冲突的内消解:开地址技术277
8.3.4外消解技术280
8.3.5散列表的性质280
8.4集合282
8.4.1集合的概念、运算和抽象数据类型282
8.4.2集合的实现283
8.4.3特殊实现技术:位向量实现285
8.5Python的标准字典类dict和set286
8.6二叉排序树和字典287
8.6.1二叉排序树288
8.6.2最佳二叉排序树295
8.6.3一般情况的最佳二叉排序树297
8.7平衡二叉树302
8.7.1定义和性质302
8.7.2AVL树类303
8.7.3插入操作304
8.7.4相关问题310
8.8动态多分支排序树311
8.8.1多分支排序树311
8.8.2B树312
8.8.3B+树314
本章总结315
练习316
第9章排序319
9.1问题和性质319
9.1.1问题定义319
9.1.2排序算法320
9.2简单排序算法323
9.2.1插入排序323
9.2.2选择排序325
9.2.3交换排序327
9.3快速排序328
9.3.1快速排序的表实现329
9.3.2程序实现330
9.3.3复杂度331
9.3.4另一种简单实现332
9.4归并排序332
9.4.1顺序表的归并排序333
9.4.2归并算法的设计问题333
9.4.3归并排序函数定义333
9.4.4算法分析335
9.5其他排序方法335
9.5.1分配排序和基数排序335
9.5.2一些与排序有关的问题338
9.5.3Python系统的list排序339
本章总结340
练习342
参考文献344
摘要
前 言本书基于作者在北京大学用Python讲授相应课程的工作,用Python作为工作语言讨论数据结构和算法的基本问题,其撰写主要有下面几方面考虑: 作为以Python为第一门计算机课程之后相应的数据结构课程的教材。 结合数据结构和算法,讨论Python中重要数据类型的实现情况和性质,帮助读者理解Python语言程序,理解如何写出高效的Python程序。 展示Python的面向对象技术可以怎样运用。书中构造了一批相互关联的数据结构类,前面定义的类被反复应用在后续章节的数据结构和算法中。 基于这些情况,本书不但可以作为数据结构课程的教材,也可以作为学习Python语言编程技术的后续读物(假设读者已经有了Python编程的基本知识)。 由于Python语言的一些优点,近年来,国外已经有不少大学采用它作为第一门计算机科学技术课程的教学语言,包括许多一流大学。国内院校也可能参考这种趋势,出现这种变化。作者在北京大学数学学院开设了基于Python语言的程序设计和数据结构课程,通过亲身实践,发现用Python讲授这两门课程也是一种很好的安排。 用Python学习数据结构,最大的优点就是可以看到复杂的数据结构可以怎样一步步地从基本的语言机制构造起来。在一个章节里定义的数据结构,经常可以在后续章节的算法和数据结构中直接使用,如果不适用,常常可以通过简单的类派生来调整。还可以非常方便地用在各种习题和练习里,或用于解决实际问题。学生可以看到,书中的(或他们自己写的)代码不是玩具,而是切实有用的软件构件。在基于本书的课程中,很容易安排一些有一定规模的面向实际应用的开发课题,使学生得到更好的实际锻炼。 书中标*的节或小节作为选讲内容,或留给学生自己阅读。 本书的成型也得益于作者多年讲授基于C语言的数据结构课程的经验,张乃孝老师的《算法和数据结构》是作者一直使用的教材,本书在编写中也参考了该书的一些体例。此外,北京大学数学学院2013级的同学在学习中提出了许多很好的问题,参加课程辅导工作的刘海洋、胡婷婷、张可和陈晨也提供了很多帮助,在此表示特别的感谢。 裘宗燕2015年8月于北京
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网