《王道程序员求职宝典》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王道论坛组编
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2013
  • ISBN:9787121212864
  • 页数:385 页
图书介绍:本书以近年来最新、最有代表性的名企笔试、面试真题为介入点,讲解笔试、面试所涉及的相关知识点,并给出详细的解题思路,有助于读者更快地理解相关内容,并为读者提供可靠的参考,使得读者能提高复习效率。全书内容涵盖程序设计基础、数据结构基础、计算机网络基础、操作系统基础以及其他计算机相关知识。

第1篇程序设计基础及数据结构基础 3

第1章 数组 3

1.1 一维数组的声明与字符数组 3

1.1.1 一维数组的声明与初始化 3

1.1.2 C风格字符串与字符数组 4

1.2 二维数组 5

1.2.1 二维数组的声明与初始化 5

1.2.2 行优先存储与列优先存储 7

1.2.3 二维数组的动态声明 8

1.3 数组指针、指针数组与数组名的指针操作 9

1.3.1 指针运算——算术运算、关系运算 9

1.3.2 指针数组与数组指针 10

1.3.3 指针运算在数组中的应用 11

1.4 数组的应用 15

1.4.1 线性表的顺序存储 15

1.4.2 对称矩阵的压缩 16

本章习题 16

第2章 字符串 23

2.1 字符串与子串、子序列 23

2.2 C风格字符串 23

2.3 标准库提供的字符串处理函数 24

2.3.1 strlen 25

2.3.2 strcmp 25

2.3.3 strcat与strcpy 26

2.3.4 memcpy与memset 27

2.4 字符串的实际应用 27

2.4.1 字符串包含问题 27

2.4.2 字符串转换为数字 30

2.4.3 其他应用 32

本章习题 35

第3章 结构体、共用体与枚举 39

3.1 结构体struct 39

3.1.1 结构体的定义 39

3.1.2 结构体中的位字段 40

3.2 共用体union 41

3.3 枚举 45

3.4 sizeof运算符 46

3.4.1 sizeof的使用方法 46

3.4.2 sizeof的结果 47

3.4.3 与strlen()比较 47

3.4.4 指针、引用、汉字及数组的sizeof操作 48

3.4.5 struct的空间计算 49

3.4.6 union的空间计算 54

3.4.7 枚举的空间计算 55

本章习题 55

第4章 运算符及其优先级 63

4.1 赋值语句 63

4.2 自增与自减运算符 64

4.2.1 前缀运算与后缀运算 64

4.2.2 自增、自减运算符作用的对象 65

4.2.3 ++、--运算符的结合方向 66

4.3 关系与逻辑运算符 66

4.4 位运算符 67

4.4.1 与、或、非及异或运算符 68

4.4.2 移位运算符 69

4.5 C++基本类型的类型转换 72

4.5.1 赋值转换 72

4.5.2 表达式的转换 72

4.5.3 显式转换 74

4.5.4 其他转换 75

4.6 运算符优先级表 75

本章习题 77

第5章 C预处理器、作用域、static、const以及内存管理 86

5.1 C预处理器 86

5.1.1 宏定义与宏替换 86

5.1.2 文件包含 87

5.1.3 条件编译 87

5.2 全局变量与局部变量 88

5.3 static 90

5.3.1 static的作用 90

5.3.2 类中static的作用 91

5.4 const 94

5.4.1 常量 94

5.4.2 指针和const修饰符 95

5.4.3 修饰函数参数与返回值 96

5.4.4 const在类中的应用 98

5.5 内存管理与释放 100

5.5.1 C语言内存操作函数 101

5.5.2 C++内存管理 102

本章习题 105

第6章 函数 111

6.1 参数传递 111

6.2 内联函数 115

6.3 默认参数 115

6.4 函数重载 117

6.5 函数模版与泛型 117

6.5.1 函数模版 118

6.5.2 类模版 119

6.6 函数的递归 119

本章习题 121

第7章 指针与引用 127

7.1 指针 127

7.1.1 指针的声明 127

7.1.2 typedef 127

7.1.3 void指针 128

7.1.4 指向指针的指针 129

7.1.5 函数指针 129

7.2 引用 133

7.2.1 const引用 134

7.2.2 引用做类的数据成员 134

本章习题 134

第8章 类 137

8.1 访问标号 137

8.2 类成员简介 137

8.2.1 成员函数 137

8.2.2 构造函数 138

8.2.3 析构函数 142

8.2.4 构造函数与析构函数调用顺序 143

8.2.5 操作符重载 145

8.3 成员函数的重载、覆盖与隐藏 150

8.3.1 成员函数的重载 150

8.3.2 成员函数的覆盖 150

8.3.3 成员函数的隐藏 151

本章习题 152

第9章 面向对象编程 154

9.1 继承 154

9.1.1 基类成员在派生类中的访问属性 155

9.1.2 继承时导致的二义性 157

9.1.3 转换构造函数 161

9.1.4 类型转换函数 161

9.2 虚函数多态 162

9.2.1 静态联编与动态联编 163

9.2.2 虚函数表指针(vptr)及虚基类表指针(bptr) 167

9.2.3 虚拟继承时构造函数的书写 174

9.2.4 纯虚函数 174

9.3 动态运行时类型识别与显式转换 175

9.3.1 typeid 175

9.3.2 显式转换 175

本章习题 180

第10章 分治法、动态规划与贪心算法 186

10.1 分治法 186

10.2 动态规划 186

10.2.1 LCS问题 189

10.3 贪心算法 193

10.3.1 贪心算法与动态规划 193

本章习题 195

第11章 链表 197

11.1 单链表 197

11.2 快慢指针的概念及其应用 200

11.3 双链表 204

本章习题 207

第12章 栈与队列 209

12.1 栈 209

12.2 栈的应用 210

12.2.1 算术表达式的计算 210

12.3 Catalan数 211

12.3.1 Catalan数的应用 211

12.4 队列 212

12.4.1 队列的顺序存储 212

本章习题 213

第13章 树 216

13.1 树的基本概念和性质 216

13.2 二叉树 217

13.2.1 二叉树的性质及存储结构 218

13.2.2 二叉树的遍历 219

13.3 二叉树的应用 220

13.4 树的应用 225

13.4.1 二叉排序树 225

13.4.2 平衡二叉树 226

13.4.3 哈夫曼树及哈夫曼编码 229

13.5 并查集 230

本章习题 232

第14章 图 234

14.1 图的基本概念 234

14.2 图的存储及基本操作 235

14.2.1 邻接矩阵法 235

14.2.2 邻接表法 236

14.3 图的遍历 237

14.3.1 深度优先搜索 237

14.3.2 广度优先搜索 237

14.4 图遍历算法的应用 238

14.5 图的基本应用 242

14.5.1 最小生成树 242

14.5.2 最短路径 243

14.5.3 拓扑排序 245

本章习题 246

第15章 排序 250

15.1 插入排序 250

15.1.1 直接插入排序 250

15.1.2 希尔排序 251

15.2 交换排序 252

15.2.1 冒泡排序 252

15.2.2 快速排序 252

15.3 选择排序简介 257

15.3.1 简单选择排序 257

15.3.2 堆排序 258

15.4 归并排序 261

15.4.1 二路归并排序 261

15.4.2 多路归并排序 265

15.5 不同排序算法比较 268

15.5.1 稳定性 269

15.5.2 比较次数 269

15.5.3 空间复杂度 270

本章习题 270

第16章 查找 272

16.1 基本概念 272

16.2 折半查找 273

16.3 键树 275

16.3.1 键树的定义与Trie树 275

16.3.2 键树两种实现的对比 279

16.4 后缀树与后缀数组 279

16.4.1 后缀树 279

16.4.2 后缀数组 281

16.5 哈希表 283

16.5.1 哈希表的基本概念 283

16.5.2 哈希函数 283

16.6 一致性哈希 285

16.6.1 普通集群 285

16.6.2 hash集群 286

16.6.3 一致性哈希 286

16.7 海量数据处理 289

16.7.1 分治——Hash映射 289

16.7.2 Bit-map 290

16.7.3 Bloom Filter 292

16.7.4 倒排索引法 293

本章习题 293

第2篇计算机网络基础 298

第1章 计算机网络模型 298

1.1 OSI参考模型 298

1.2 TCP/IP模型 299

本章习题 299

第2章 传输层与SOCKET基本操作简介 301

2.1 传输层 301

2.2 TCP连接的建立和终止 302

2.2.1 三次握手建立连接详解 303

2.2.2 四次挥手释放连接详解 303

2.3 TCP状态转换图 304

2.4 SOCKET的基本操作 307

本章习题 310

第3章 网络层 312

3.1 IPv4地址及网络地址转换NAT 312

3.2 子网划分与子网掩码、CIDR 313

3.3 ARP、RARP、ICMP 314

3.4 IPv6 315

本章习题 315

第4章 网络常用测试工具 318

4.1 ping 318

4.2 tracert 318

4.3 telnet 318

4.4 netstat 319

第3篇操作系统基础 322

第1章 进程管理 322

1.1 进程 322

1.2 线程 324

1.3 进程通信与进程同步 326

1.4 调度算法 327

1.5 死锁 328

第2章 内存管理 330

2.1 逻辑地址空间与物理地址空间 330

2.2 内存分配管理方式 330

2.2.1 基本分页存储管理方式 330

2.2.2 基本分段存储管理方式 331

2.2.3 段页式管理方式 332

2.3 虚拟内存管理 332

2.3.1 虚拟存储器的定义和特征 332

2.3.2 请求分页管理方式 333

第3章 Linux常用命令 337

3.1 目录和文件的相关操作 337

3.2 文本文件内容查看 338

3.3 查看系统信息 340

本章习题 340

第4篇其他计算机相关基础 344

第1章 数据库基础知识 344

1.1 数据库理论 344

1.1.1 数据模型 344

1.1.2 主键与外键 344

1.1.3 事务 345

1.1.4 索引 345

1.1.5 视图 346

1.2 SQL语句 347

1.2.1 数据定义 347

1.2.2 数据查询 348

1.2.3 数据操纵 350

本章习题 351

第2章 设计模式 354

2.1 单例模式 354

2.1.1 单例模式的C++版本实现 354

2.1.2 Java版本实现 355

本章习题 357

第3章 数学基础 358

3.1 进制及其应用 358

3.2 概率 360

3.3 排列与组合 362

3.4 计算题 364

3.4.1 容斥原理 364

3.4.2 其他 365

第4章 逻辑知识 369

第5章 综合知识 372

5.1 Cache 372

5.2 STL 373

5.2.1 顺序容器 373

5.2.2 关联容器 375

5.2.3 容器的选用 375

5.2.4 auto_ptr与shared_ptr 376

综合习题 378

5.3 其他 380

参考文献 384