• C/C++与数据结构9787302554837
21年品牌 40万+商家 超1.5亿件商品

C/C++与数据结构9787302554837

正版图书,可开发票,请放心购买。

48.79 4.9折 99 全新

库存30件

广东广州
认证卖家担保交易快速发货售后保障

作者王立柱主编

出版社清华大学出版社

ISBN9787302554837

出版时间2020-08

装帧平装

开本其他

定价99元

货号9860494

上书时间2024-11-20

亿临书店

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

什么是程序?算法 数据结构=程序。

 

数据结构是程序设计的核心,C 语言实现了常用数据结构的标准化,C语言是C 语言的直接先导。在提倡全民编程的时代,把它们融汇贯通,面向所有程序设计爱好者,是本书的主旨。

 

本书共26章。

 

第1~9章是C语言部分。从对象和运算符概念开始,通过程序比较序列,不断扩展到函数、指针和数组、顺序表、字符串、文件、链表、二维数组和指针等。它们的关系如下。

 

(1) 对象和运算符是计算机组织结构中存储单元和运算器在高级语言层面的映射。对象的大小、存储格式和基本操作由类型决定。编程是基于类型的设计,对象和运算符构成的表达式是程序的基本语句。

 

(2) 函数名是运算符的扩展,函数表达式是基本表达式的扩展。

 

(3) 指针和数组是对象名称和对象的扩展。指针是对象名称的扩展,它表示对象的地址。数组是对象的扩展,它是由一组对象构成的*简单的容器。指针和数组都是复合类型,即依赖其他类型而存在的类型。指针和数组互相依赖。

 

(4) 顺序表是带有基本操作函数的数组。

 

(5) 字符串既是特殊的数组,也是特殊的顺序表。

 

(6) 文件是特殊的顺序表。

 

(7) 链表是拓扑意义上的顺序表。

 

(8) 二维数组是特殊的数组。

 

第10~17章是C 语言部分。通过对称变换,实现了顺序表、字符串、链表和文件从初级到高级再到标准化的发展,包括顺序表类、String类、Date类和面向对象设计、向量类模板、链表类模板、C 流与文件等。具体关系如下。

 

(1) 顺序表类是从顺序表变换而来的,开始于指针到引用的变换。引用是隐藏的指针。

 

(2) String类是从字符串变换而来的。因为字符串是特殊的顺序表,所以这种变换可以与顺序表到顺序表类的变换类比。

 

(3) Data类从结构Data变换而来。面向对象设计是结构类型的扩展。

 

(4) 向量类模板是带有迭代器的顺序表类。迭代器是封装的、个性化的指针。

 

(5) 链表类模板是带有迭代器的链表。

 

(6) C 流与文件是从C文件变换而来的,文件读写函数由文件指针传递变为对象调用。

 

第18~26章是数据结构非线性部分,包括二叉树、堆、二叉搜索树、平衡二叉搜索树、树、图、B树、散列、性能分析和排序。具体关系如下。

 

(1) 二叉树是非线性结构和算法的基础。二叉树的垂直输出和链式存储结构的创建以二叉树的层次遍历为模型,快速排序以二叉树的前序遍历为模型,汉诺塔问题以二叉树的中序遍历为模型,二叉树深度计算、复制和删除以二叉树的后序遍历为模型。

 

(2) 堆是以线性连续方式存储的完全二叉树。

 

(3) 二叉搜索树是折半查找的扩展。

 

(4) 平衡二叉搜索树的删除和插入是关键操作,它们以二叉树的后序遍历迭代算法为模型。

 

(5) 树和图的底层结构是向量类模板和链表类模板。

 

(6) B树是平衡二叉搜索树的扩展。

 

至今,本书共改版4次,相应的改革先后在天津师范大学、北京联合大学商务学院、对外经济贸易大学和湖北工业大学实验推广,得到很多专业人士和朋友的支持和鼓励,借此机会表示衷心感谢。我们所取得的成果还存在一些需要改进的地方,现把它提供给大家,希望得到更多具有建设性的意见。

 

 

 

编者2020年3月



 
 
 
 

商品简介

本教材共16章,从C到C 。由程序转换序列贯串,每一个程序都是在前一个程序的基础上扩展或转换而来,解决前一个程序的问题,概念逐步总结生成,变抽象为具体。实现了线性常用数据结构从低级到高级再到标准化的转换,解决了程序语言和数据结构脱节,从C语言到C 语言过渡难的问题。有多媒体教学软件与教材配套。



作者简介
王立柱,天津师范大学教授,湖北工业大学特聘教授,教育部-微软精品课主持人,国j级十一五规划教材主编,先后获天津市教学成果二等奖,湖北省教学成果一等奖。

目录
第1章对象和运算符1

1.1第一个C语言程序1

1.1.1什么是程序1

1.1.2对象1

1.1.3表达式2

1.1.4第一个C语言程序4

1.1.5集成开发环境6

1.2循环结构7

1.2.1while语句8

1.2.2for语句11

1.3标准输入函数12

1.4分而治之16

1.5选择结构(ifelse语句)17

1.6关系运算和逻辑运算19

1.7条件表达式和复合赋值表达式20

1.8输入验证21

1.8.1break和continue语句22

1.8.2前哨24

练习26

第2章函数30

2.1函数的定义和调用30

2.2函数声明35

2.3自设头文件36

2.4应用函数设计举例38

2.4.1阶乘38

2.4.2质数41

2.4.3最大公约数43

2.4.4斐波那契数列44

2.4.5π的近似值46

2.5函数和对象的存储类别48

2.5.1局部对象49

2.5.2静态局部对象49

2.5.3外部对象50

2.5.4寄存器对象50

2.5.5动态对象51

练习51

C/C++与数据结构(第5版)目录第3章指针和数组52

3.1指针和地址传递52

3.1.1地址和指针52

3.1.2两种参数传递54

3.1.3对象值交换57

3.2数组和线性表60

3.3指针和数组的关系63

3.3.1指针和数组的统一63

3.3.2数组求和66

3.3.3数组逆置68

3.4const限定符71

3.5数组应用75

3.5.1最大元素75

3.5.2选择排序78

3.5.3顺序搜索和二分搜索81

3.5.4平均值84

3.6类型转换85

3.7动态数组86

3.7.1内存分配函数86

3.7.2最近平均值89

3.8指针与索引91

3.9函数指针93

练习94

第4章顺序表98

4.1数组求和分析98

4.2动态数组应用100

4.3结构初步101

4.4typedef名字103

4.5准构造和准析构105

4.6尾插108

4.7读取110

4.8删除113

4.9基本函数补充115

4.10参数合法性检验116

4.11顺序表的意义和局限性117

4.12顺序表头文件119

练习121

第5章结构、联合、枚举123

5.1结构123

5.1.1结构与对象123

5.1.2结构Date126

5.1.3结构与数组129

5.2联合131

5.3枚举常量和switchcase语句134

练习139

第6章字符串141

6.1字符型141

6.2字符串特点144

6.3字符串基本操作147

6.3.1字符串输入输出147

6.3.2字符串求长148

6.3.3字符串复制148

6.3.4字符串连接149

6.3.5字符串大小写150

6.3.6字符串比较151

6.3.7字符查找151

6.3.8字符串匹配152

6.4自设计字符串基本操作153

6.4.1设计字符串输入和输出153

6.4.2设计字符串求长154

6.4.3设计字符串复制155

6.4.4设计字符串连接156

6.4.5设计字符串大小写157

6.4.6设计字符串比较158

6.4.7设计字符查找159

6.4.8字符串头文件161

6.5函数返回指针165

练习166

第7章文件168

7.1文件指针168

7.2文件打开与关闭168

7.3文件的读写171

7.3.1字符的读写171

7.3.2字符串的读写174

7.3.3格式读写175

7.3.4无格式读写177

练习181

第8章链表183

8.1链表设计183

8.1.1链表结点183

8.1.2链表雏形186

8.1.3链表边界读取188

8.1.4链表插入188

8.1.5链表删除191

8.1.6链表头文件193

8.2链表逆置194

8.3Josephus问题196

练习199

第9章二维数组和指针200

9.1二维数组200

9.1.1二维数组定义200

9.1.2二维数组初始化200

9.1.3二维数组和指针202

9.2二维数组和一维数组205

9.2.1二维数组作为一维数组205

9.2.2马鞍点206

9.2.3一维数组作为二维数组208

9.3指针数组和二级指针209

9.4二级指针和二维数组210

练习212

第10章C++语言初步215

10.1对象和结构对象的定义215

10.2提取符和插入符216

10.3运算符重载217

10.4函数重载219

10.5引用220

10.5.1引用概念的由来220

10.5.2引用声明225

10.5.3引用传递和返回引用225

10.6默认参数和默认函数228

练习229

第11章顺序表类230

11.1顺序表类230

11.1.1从C顺序表到C++顺序表类变换232

11.1.2复制赋值和复制构造238

11.1.3修饰词explicit和初始化表241

11.1.4默认构造函数与零元242

11.1.5索引运算符重载243

11.1.6顺序表类头文件245

11.2函数模板247

11.3类模板248

11.4函数模板实例化中的问题252

练习253

第12章String类254

12.1String类雏形254

12.2连接258

12.3插入261

12.4删除263

12.5取子串265

12.6比较267

12.7索引运算符重载268

12.8查找269

12.9String类头文件272

练习276

第13章Date类和面向对象设计277

13.1Date类277

13.1.1雏形277

13.1.2转换赋值278

13.1.3成员转换278

13.1.4提取符和插入符重载279

13.1.5自增自减280

13.1.6取值和赋值282

13.2继承282

13.3多态性和虚函数284

13.4虚析构函数286

13.5纯虚函数和抽象类286

练习289

第14章向量类模板292

14.1迭代器292

14.2向量类模板293

14.3函数对象296

练习299

第15章链表类模板300

15.1链表类模板设计300

15.1.1雏形300

15.1.2迭代器301

15.1.3插入304

15.1.4删除307

15.1.5复制赋值与复制构造310

15.1.6数据首尾元素引用313

15.1.7链表类头文件314

15.2链表逆置318

15.3Josephus问题320

15.4适配器322

15.4.1链栈322

15.4.2链队列323

15.4.3优先级链队列325

15.5事件驱动模拟326

练习336

第16章C++流与文件337

16.1格式化输入输出337

16.1.1标志字337

16.1.2格式化输出函数338

16.1.3操作算子340

16.2文件的读写342

16.2.1字符读写函数343

16.2.2字符串读写函数345

16.2.3格式读写347

16.2.4无格式读写函数348

练习352

第17章命名空间353

17.1命名空间的定义353

17.2using namespace语句354

17.3命名空间的成员355

17.4命名空间的别名357

练习357

第18章二叉树359

18.1二叉树的基本概念359

18.2二叉树的性质360

18.3二叉树的存储361

18.3.1二叉树的顺序存储361

18.3.2二叉树的链式存储361

18.4层次遍历362

18.4.1层次遍历迭代算法362

18.4.2垂直输出二叉树364

18.4.3由顺序存储生成二叉链式存储367

18.5前序遍历368

18.5.1前序遍历递归算法369

18.5.2前序遍历迭代算法374

18.5.3快速排序376

18.6中序遍历380

18.6.1中序遍历递归算法380

18.6.2中序遍历迭代算法386

18.6.3n阶汉诺塔389

18.7后序遍历391

18.7.1后序遍历递归算法391

18.7.2后序遍历迭代算法399

18.7.3复制二叉链表的递归算法403

18.7.4计算二叉树高度403

18.7.5删除二叉链表的递归算法403

18.7.6生成二叉链表的递归算法404

18.8二叉链表头文件405

练习412

第19章堆415

19.1堆类415

19.1.1堆类声明415

19.1.2堆插入416

19.1.3堆删取419

19.1.4堆类头文件423

19.2堆排序425

19.2.1对数组堆排序425

19.2.2堆排序头文件428

19.3哈夫曼树430

19.3.1哈夫曼树定义和算法430

19.3.2哈夫曼结构431

19.3.3哈夫曼编码432

19.3.4哈夫曼译码435

19.3.5哈夫曼结构头文件437

练习440

第20章二叉搜索树441

20.1二叉搜索链表类441

20.1.1类声明441

20.1.2插入442

20.1.3删除444

20.1.4查找和修改447

20.1.5中序迭代器452

20.1.6频率统计455

20.2二叉搜索链表类头文件457

练习463

第21章平衡二叉搜索树464

21.1动态平衡方法464

21.1.1左单旋转型调整464

21.1.2右单旋转型调整466

21.1.3先右后左双旋转型调整467

21.1.4先左后右双旋转型调整469

21.2平衡二叉搜索链表类470

21.2.1类声明470

21.2.2插入471

21.2.3删除474

21.2.4查找和修改477

21.2.5中序迭代器479

21.3平衡二叉搜索链表类头文件479

练习487

第22章树489

22.1树的基本概念和存储489

22.2树类的雏形491

22.3树的广度优先遍历495

22.4树的深度优先遍历497

22.5八皇后499

22.6树类头文件502

练习506

第23章图507

23.1图的基本概念和存储507

23.2图类的雏形509

23.3图的遍历514

23.3.1广度优先遍历514

23.3.2深度优先遍历516

23.4最小生成树518

23.4.1普里姆算法519

23.4.2克鲁斯卡尔算法523

23.5最短路径527

23.6拓扑序列533

23.7关键路径537

23.8迷宫542

23.9图类头文件546

练习559

第24章B树560

24.1线性索引560

24.2静态m路搜索树561

24.3B树562
 

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP