图书介绍
数据结构:C++版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)马立克(Malik,D.S.)著 著
- 出版社: 北京:清华大学出版社
- ISBN:7302074917
- 出版时间:2004
- 标注页数:779页
- 文件大小:27MB
- 文件页数:798页
- 主题词:数据结构-教材;C语言-程序设计-教材
PDF下载
下载说明
数据结构:C++版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
7.5 堆栈应用:后缀表达式计算器 381
目 录1
7.2.7出栈 361
1.1软件的生命周期1
第1章软件工程基本原理和C++类1
1.2软件开发阶段2
1.2.1 分析阶段2
1.2.2设计阶段2
1.2.3实现阶段3
1.2.4测试和调试5
1.3 算法分析:大O表示法6
1.4类12
1.4.1统一建模语言图15
1.4.2变量(对象)的声明15
1.4.3访问类的成员16
1.4.4类的内置运算17
1.4.5赋值运算符和类17
1.4.6类的作用域17
1.4.7函数和类18
1.4.8引用参数和类对象(变量)18
1.4.9成员函数的实现19
1.4.10构造函数23
1.4.1 1调用构造函数26
1.4.12构造函数和默认参数26
1.4.13析构函数27
1.4.14结构27
1.5数据抽象、类和抽象数据类型27
1.6编程示例:糖果机36
1.6.2收银机36
1.6.1 问题分析和算法设计36
1.6.3控制装置38
1.6.4主程序40
1.8快速回顾45
1.7标识类、对象和操作45
1.9练习题47
1.10编程练习51
第2章 面向对象的设计方法和C++54
2.1 继承54
2.1.1重新定义基类的成员函数57
2.1.2派生类与基类的构造函数58
2.1.3派生类的头文件64
2.1.4头文件的多重包含64
2.1.6三种继承方式:公有继承,保护继承或私有继承66
2.1.5类的保护成员66
2.2聚合67
2.3 多态:运算符和函数重载71
2.4运算符重载71
2.4.1为什么要重载运算符71
2.4.2运算符重载72
2.4.5 this指针73
2.4.4重载运算符的限制73
2.4.3运算符函数的语法73
2.4.6类的友元函数77
2.4.7定义友元函数77
2.4.8运算符函数的两种形式:成员函数和非成员函数80
2.5重载二元运算符81
2.5.1 重载二元运算符(算术运算符和关系运算符)为成员函数81
2.5.2重载二元运算符(算术运算符和关系运算符)为非成员函数83
2.5.4重载输出运算符(<<)84
2.5.3重载输出(<<)和输入(>>)运算符84
2.5.5重载输入运算符(>>)85
2.5.6重载运算符形式的选择:成员函数和非成员函数87
2.6编程示例:复数87
2.7 函数重载92
2.8模板92
2.8.1函数模板93
2.8.2类模板95
2.8.3头文件和类模板的实现文件97
2.9快速回顾97
2.1 0练习题99
2.11 编程练习109
第3章指针和基于数组的表113
3.1指针数据类型和指针变量113
3.1.1声明指针变量113
3.1.2取地址运算符( )114
3.1.3取值运算符(*)115
3.1.4类、结构和指针变量120
3.1.6动态变量123
3.1.5初始化指针变量123
3.1.7指针变量的运算125
3.2 动态数组126
3.2.1 函数和指针128
3.2.2指针和函数返回值128
3.3 浅复制、深复制与指针129
3.4类和指针:一些特例131
3.4.1析构函数132
3.4.2赋值运算符133
3.4.3重载赋值运算符135
3.4.4复制构造函数138
3.5 重载数组索引(下标)运算符([])144
3.6编程示例:newString145
3.7基于数组的表151
3.7.1复制构造函数160
3.7.2重载赋值运算符161
3.7.3搜索161
3.7.4插入163
3.7.5删除163
3.7.6各种表操作的时间复杂度164
3.8编程示例:多项式的运算168
3.9快速回顾175
3.10练习题177
3.11 编程练习182
第4章标准模板类库185
4.1 STL的组成部分185
4.2顺序容器:向量容器186
4.1.2顺序容器186
4.1.1容器类型186
4.2.1 声明vector对象187
4.2.2为向量容器声明一个迭代器189
4.2.3 容器以及begin和end函数190
4.2.4对所有容器通用的成员函数193
4.2.5顺序容器公共的成员函数194
4.2.6 copy算法194
4.2.7 ostream迭代器和copy函数196
4.3顺序容器:双端队列198
4.4迭代器201
4.4.1迭代器的类型202
4.4.3输出迭代器202
4.4.2输入迭代器202
4.4.5双向迭代器203
4.4.6随机访问迭代器203
4.4.4前向迭代器203
4.4.7流迭代器205
4.5编程示例:成绩报告单206
4.5.1 问题分析与算法设计208
4.5.2 主程序219
4.5.3程序清单221
4.6快速回顾226
4.7练习题227
4.8 编程练习231
5.1 链表234
第5章链表234
5.2链表的属性236
5.3项的插入和删除239
5.3.1 插入239
5.3.2删除241
5.4构建链表243
5.4.1 正向构建链表243
5.4.2反向构建链表247
5.5 ADT链表248
5.5.1默认构造函数251
5.5.3初始化表252
5.5.2销毁表252
5.5.4重载输出运算符253
5.5.5表的长度253
5.5.6检索第一个节点的数据253
5.5.7检索最后一个节点的数据254
5.5.8搜索表254
5.5.9在表头插入节点255
5.5.11删除节点256
5.5.10在表尾插入节点256
5.5.12复制表261
5.5.13析构函数262
5.5.14复制构造函数262
5.5.15重载赋值运算符263
5.6有序链表264
5.6.1 搜索表265
5.6.2插入节点266
5.6.3删除节点270
5.6.4有序链表的头文件271
5.7双向链表273
5.7.1默认构造函数276
5.7.2 isEmptyList276
5.7.4 初始化表277
5.7.5表的长度277
5.7.3 销毁表277
5.7.7反向打印表278
5.7.6重载输出运算符278
5.7.8 搜索表279
5.7.9第一个和最后一个元素279
5.7.10插入节点280
5.7.11删除节点282
5.8 STL顺序容器:list284
5.9带有头节点和尾节点的链表289
5.10循环链表290
5.11 编程示例:Video Store291
5.12 快速回顾309
5.13练习题310
5.14编程练习315
第6章递归319
6.1递归的定义319
6.1.1直接递归和间接递归321
6.1.2无穷递归321
6.2递归法解决问题322
6.3递归还是迭代337
6.4递归和回溯:n-皇后问题338
6.4.1回溯338
6.4.2回溯和4皇后问题340
6.4.3 8皇后问题341
6.5 快速回顾345
6.6练习题346
6.7 编程练习348
第7章堆栈353
7.1 堆栈353
7.2使用数组实现堆栈355
7.2.1初始化堆栈358
7.2.5入栈359
7.2.4满堆栈359
7.2.3空堆栈359
7.2.2销毁堆栈359
7.2.6返回栈顶元素361
7.2.8复制堆栈362
7.2.9构造函数和析构函数363
7.2.10复制构造函数364
7.2.1 1 重载赋值运算符(=)364
7.2.12堆栈的头文件365
7.3 编程示例:求最高GPA366
7.4堆栈的链表实现370
7.4.1默认构造函数372
7.4.3初始化堆栈373
7.4.2销毁堆栈373
7.4.4入栈374
7.4.5返回栈顶元素377
7.4.6出栈377
7.4.7 由类linkedListType派生而来的堆栈379
7.5.1 主算法385
7.5.2完整的程序清单387
7.6消除递归:反向打印一个链表的非递归算法391
7.7 STL堆栈类(堆栈容器适配器)396
7.8快速回顾398
7.9练习题398
7.10编程练习402
第8章队列404
8.1 队列404
8.1.1 队列操作404
8.1.2队列的数组实现405
8.2队列的链式实现416
8.3 从类linkedListType派生而来的队列420
8.4 STL类queue(队列容器适配器)423
8.5优先级队列425
8.6队列的应用:模拟426
8.6.1设计队列系统427
8.6.2客户427
8.6.3 服务器430
8.6.4服务器表433
8.6.5等待客户的队列438
8.6.6 主程序440
8.7快速回顾447
8.8练习题447
8.9编程练习451
第9章搜索算法453
9.1 搜索算法453
9.1.1 顺序搜索456
9.1.2顺序搜索算法分析457
9.1.3有序表458
9.1.4折半搜索459
9.1.5折半搜索算法的性能462
9.1.6将数据项插入到一个有序表463
9.2基于比较的搜索算法的下限465
9.3 散列算法466
9.3.1 散列函数:示例467
9.3.2冲突解决467
9.3.3 冲突解决:开型寻址法467
9.3.4二次探测469
9.3.5 删除:开型寻址法472
9.3.6散列法:使用二次探测来实现473
9.3.7冲突解决:链地址法(开散列方法)476
9.3.8散列法性能分析477
9.4快速回顾478
9.5 练习题480
9.6编程练习481
第10章排序算法484
10.1 排序算法484
10.2选择排序:基于数组的表484
10.3插入排序:基于数组的表490
10.4插入排序:基于链表的表495
10.5基于比较的排序算法的下限499
10.6快速排序:基于数组的表500
10.7归并排序:基于链表的表505
10.7.1划分507
10.7.2归并509
10.7.3分析:归并排序512
10.8堆排序:基于数组的表512
10.8.1 构建堆513
10.8.2分析:堆排序520
10.9再论优先级队列520
10.9.1在优先级队列中插入一个元素521
10.9.2从优先级队列删除一个元素521
10.10编程示例:选举结果521
10.10.1 问题分析和算法设计522
10.10.2主程序528
10.10.3对姓名排序530
10.10.4处理投票数据532
10.10.5计算选票数的总和534
10.10.6打印标题和结果534
10.11 快速回顾538
1 0.1 2 练习题539
10.13编程练习540
第1 1章二叉树543
11.1 二叉树543
11.2二叉树的遍历549
11.2.1 中序遍历549
11.2.2前序遍历549
11.2.3 后序遍历549
11.2.4二叉树的实现552
11.3 二叉搜索树560
11.3.1 search函数562
11.3.2 Insert函数564
11.3.3 Delete函数565
11.4二叉搜索树分析572
11.5 二叉树的非递归遍历算法573
11.5.1 非递归中序遍历573
11.5.2非递归前序遍历574
11.5.3非递归后序遍历576
11.6 二叉树遍历和作为参数的函数577
11.7 AVL(平衡)树580
11.7.1 AVL树的插入操作582
11.7.2 AVL树的旋转587
11.7.3 AVL树的删除操作598
11.7.4 AVL树的性能分析599
11.8 编程示例:Video Store600
11.9快速回顾608
11.10练习题609
11.1 1编程练习612
第12章图614
12.1 初识图614
12.2 图的定义和符号615
12.3 图的表示方法617
12.3.1邻接矩阵617
12.3.2邻接表618
12.4 图的操作619
12.6 图的ADT定义620
12.5 回顾模板620
12.7 图的遍历624
12.7.1深度优先遍历624
12.7.2 广度优先遍历626
12.8最短路径算法628
12.9最小生成树634
12.10拓扑排序641
12.11快速回顾647
12.12练习题648
12.1 3 编程练习650
13.1 pair类652
第1 3章标准模板库(STL)Ⅱ652
13.1.1 比较pair类型的对象654
13.1.2 pair类型和make pair函数654
13.2关联容器656
13.2.1关联容器:集合和多重集合657
13.2.2关联容器:映射和多重映射661
13.3 容器、相关头文件和迭代器支持666
13.4算法666
13.5 STL算法分类667
13.5.1非修改算法667
13.5.2修改算法667
13.5.4堆算法668
13.5.3数值算法668
13.5.5函数对象669
13.5.6谓词674
13.5.7插入迭代器674
1 3.6 STL算法676
13.6.1 fill和filn函数676
13.6.2 generate和generate_n函数678
13.6.3 find、find if、find end和find first of函数679
13.6.4 remove、remove_if、remove_copy和remove_copy_if函数681
13.6.5 replace、replace_if、replace_copy和replace_copy_if函数685
13.6.6 swap、iter_swap和swap_ranges函数687
13.6.7 search、search n、sort和binary search函数690
13.6.8 adjacent_find、merge和inplace_merge函数694
13.6.9 reverse、reverse_copy、rotate、rotate_copy函数696
13.6.10 count、count if、max、max element、min、min element和random shuffle函数699
13.6.1l for each和transform函数702
13.6.12 includes、set_intersection、set_union、set_difference和set_symmetric_difference函数705
13.6.13 accumulate、adjacent_difference、inner_product和partial_sum函数713
13.7快速回顾718
13.8 练习题720
13.9编程练习722
附录A保留字724
附录B运算符优先级725
附录C字符集726
附录D 运算符重载728
E.1 头文件cassert729
E.2头文件cctype729
附录E头文件729
E.3 头文件cmath730
E.4头文件cstddef731
E.5 头文件cstring731
E.6头文件string732
附录F其他C++主题734
F.1继承、指针和虚函数734
F.2类和虚析构函数740
F.3取地址运算符和类740
G.1数据类型744
附录G针对JAVA程序员的C++介绍744
G.2名称常量、变量以及赋值语句745
G.3预处理指令746
G.4 C++程序746
G.5输入和输出747
G.6控制结构756
G.7命名空间757
G.8函数及其参数761
G.9数组765
附录H参考文献768
附录I精选习题答案769
热门推荐
- 1477917.html
- 871560.html
- 1836187.html
- 1290111.html
- 342950.html
- 534915.html
- 2380818.html
- 3883747.html
- 2466588.html
- 3823606.html
- http://www.ickdjs.cc/book_134344.html
- http://www.ickdjs.cc/book_2784377.html
- http://www.ickdjs.cc/book_3848094.html
- http://www.ickdjs.cc/book_704969.html
- http://www.ickdjs.cc/book_100503.html
- http://www.ickdjs.cc/book_958523.html
- http://www.ickdjs.cc/book_488430.html
- http://www.ickdjs.cc/book_1396961.html
- http://www.ickdjs.cc/book_3269618.html
- http://www.ickdjs.cc/book_3881123.html