程序员面试手册-概念.编程问题及面试题

本书特色

[

本书是面向程序员面试的参考书,书中囊括了各种编程解决方案,可以用来有效地应对面试、考试及校园招聘。内容涵盖了编程基础、架构设计、数据库技术、数据结构及算法等主要的话题,而且还介绍了趣味谜题以及非技术的问题。

]

目录

Contents 目 录译者序前 言致 谢第1章 编程基础11.1 变量11.2 数据类型11.3 数据结构21.4 抽象数据类型31.5 内存与变量31.6 指针41.6.1 指针的声明41.6.2 指针的使用51.6.3 指针的操纵61.6.4 数组与指针71.6.5 动态内存分配71.6.6 函数指针71.7 参数传递的方式81.7.1 实际参数与形式参数81.7.2 参数传递的语义81.7.3 各种编程语言所支持的参数传递方式91.7.4 按值传递91.7.5 按结果传递101.7.6 有可能发生的参数冲突101.7.7 按值-结果传递111.7.8 按引用传递(别名机制)111.7.9 按名称传递121.8 绑定121.8.1 静态绑定(前期绑定)131.8.2 动态绑定(后期绑定)131.9 作用域131.9.1 静态作用域131.9.2 动态作用域141.10 存储类别151.10.1 存储类别为auto的变量151.10.2 存储类别为extern的变量161.10.3 存储类别为register的变量181.10.4 存储类别为static的变量191.11 存储空间的安排191.12 编程方式221.12.1 无结构的编程221.12.2 过程式的编程221.12.3 模块式的编程221.12.4 面向对象的编程231.13 面向对象编程的基本概念231.13.1 类与对象241.13.2 封装241.13.3 抽象251.13.4 数据隐藏251.13.5 多态251.13.6 继承261.13.7 继承的类型261.13.8 动态绑定271.13.9 消息传递28第2章 脚本语言832.1 解释器与编译器832.1.1 编译器832.1.2 解释器842.1.3 编译器与解释器的区别842.2 什么是脚本语言842.3 shell脚本编程852.3.1 命令的重定向与管道852.3.2 变量862.3.3 命令行参数872.3.4 命令替换882.3.5 算术扩展882.3.6 控制结构882.3.7 函数922.4 Perl942.4.1 从“Hello world!”程序开始942.4.2 Perl的命令行参数952.4.3 Perl的数据类型与变量952.4.4 引用982.4.5 声明变量982.4.6 变量的作用域992.4.7 字符串字面量992.4.8 Perl的标准输入端1002.4.9 Perl语言的运算符1012.4.10 条件语句1102.4.11 循环1132.4.12 子例程1152.4.13 字符串操作1172.4.14 包/模块1182.5 Python1182.5.1 什么是Python1182.5.2 布尔类型1192.5.3 整数1192.5.4 字符串1192.5.5 列表与元组1212.5.6 函数1222.5.7 把代码包装成模块123第3章 与设计有关的面试题1243.1 术语介绍1243.2 技巧1253.3 可供练习的其他设计问题179第4章 操作系统的概念1804.1 术语介绍1804.2 与操作系统概念有关的问题183第5章 计算机网络的基础知识1885.1 介绍1885.2 局域网与广域网1885.3 数据包分割与多路复用1895.4 终端设备1905.5 中介设备1905.6 集线器、交换机与路由器的定义1915.7 介质1925.8 端对端网络与客户端/服务器网络1925.9 互联网是如何运作的1935.10 OSI模型与TCP/IP模型的区别1965.11 客户端/服务器结构与互联网1975.12 ARP与RARP1985.13 子网1995.14 路由器的工作原理2005.15 单播、广播、多播2015.16 tracert/traceroute及ping命令的工作原理2025.17 什么是QoS203第6章 数据库概念2046.1 术语介绍2046.2 与数据库概念有关的问题206第7章 智力题2137.1 智力题213第8章 算法介绍2178.1 什么是算法2178.2 为什么要做算法分析2188.3 算法分析的目标2188.4 什么是运行时间分析2188.5 怎样对比不同的算法2188.6 什么是增长率2198.7 几种常见的增长形式2198.8 算法分析的类型2208.9 渐近表示法2218.10 大O表示法2218.11 大Ω表示法2228.12 大Θ表示法2238.13 算法分析为什么又叫渐近分析2258.14 渐近分析指南2258.15 三种表示法的性质2278.16 常用的对数公式与求和公式2278.17 分治算法的主定理2278.18 与分治算法的主定理有关的问题2288.19 递减式递推(减而治之)算法的主定理2298.20 另一种递减式递推(减而治之)算法的主定理2298.21 与算法分析有关的问题230第9章 递归与回溯2409.1 介绍2409.2 什么是递归2409.3 为什么要用递归的办法解决问题2409.4 递归函数的格式2419.5 演示递归调用时的内存占用情况2419.6 递归与迭代2429.7 运用递归时的注意事项2439.8 递归算法举例2439.9 与递归有关的问题2439.10 什么是回溯2459.11 回溯算法举例2459.12 与回溯有关的问题245第10章 链表24810.1 什么是链表24810.2 将链表用作抽象的数据类型24810.3 为什么要用链表24910.4 数组概述24910.5 比较链表、数组与动态数组25010.6 单链表25110.7 双链表25610.8 循环链表26110.9 节省内存的双链表26610.10 松散链表26810.11 跳跃链表27310.12 与链表有关的问题276第11章 栈29511.1 什么是栈29511.2 怎样使用栈29611.3 将栈用作抽象数据类型29611.4 栈的运用29611.5 实现29711.6 对比各种实现方式30211.7 与栈有关的问题303第12章 队列32412.1 什么是队列32412.2 如何使用队列32412.3 将队列用作抽象数据类型32512.4 异常32512.5 运用32512.6 实现32612.7 与队列有关的问题331第13章 树33713.1 什么是树33713.2 术语表33713.3 二叉树33913.4 二叉树的类型33913.5 二叉树的性质34013.6 遍历二叉树34213.7 泛化树(N叉树)36213.8 通过线索二叉树来遍历36913.9 表达式树37613.10 异或树37913.11 二叉搜索树38013.12 平衡二叉搜索树39513.13 AVL树39613.14 其他形式的树41313.14.1 红黑树41313.14.2 伸展树41413.14.3 扩充树(增强树)41413.14.4 区间树(区段树)41513.14.5 替罪羊树416第14章 优先级队列与堆41814.1 什么是优先级队列41814.2 将优先级队列用作抽象数据结构41814.3 运用41914.4 实现41914.5 堆与二叉堆42014.6 二叉堆42114.7 与优先级队列和堆有关的问题428第15章 图算法44215.1 介绍44215.2 术语表44215.3 图的运用44615.4 将图用作抽象的数据结构44615.4.1 邻接矩阵44615.4.2 邻接列表44715.4.3 邻接集合44915.4.4 表示图的方法的对比44915.5 图的遍历44915.5.1 深度优先搜索(DFS)45015.5.2 广度优先搜索(BFS)45415.5.3 对比DFS与BFS45615.6 拓扑排序45715.7 *短路径算法45815.8 *小生成树46515.9 与图算法有关的问题469第16章 排序47516.1 什么是排序47516.2 为什么要排序47516.3 排序算法的分类方式47516.3.1 按照比较的次数来分类47516.3.2 按照交换操作的次数来分类47616.3.3 按照内存使用量来分类47616.3.4 按照是否递归来分类47616.3.5 按照是否稳定来分类47616.3.6 按照适应性来分类47616.4 其他的分类方式47616.5 冒泡排序47716.6 选择排序47816.7 插入排序47916.8 希尔排序48116.9 归并排序48316.10 堆排序48516.11 快速排序48516.12 树排序48816.13 线性时间的排序算法48916.14 计数排序48916.15 桶排序49016.16 基数排序49016.17 拓扑排序49116.18 外部排序49116.19 与排序有关的问题492第17章 搜索50017.1 什么是搜索50017.2 为什么要搜索50017.3 各种类型的搜索50017.4 在无序的数据中执行线性搜索50117.5 在已经排好序/有序的数组中执行线性搜索50117.6 二分搜索50117.7 对比几种基本的搜索算法50217.8 符号表与哈希50217.9 字符串搜索算法50217.10 与搜索有关的问题503第18章 选择算法53018.1 什么是选择算法53018.2 通过排序来选择53018.3 基于分区的选择算法53118.4 线性选择算法—中位数的中位数算法53118.5 把*小的k个元素找出来53118.6 与选择算法有关的问题531第19章 符号表54119.1 介绍54119.2 什么是符号表54119.3 实现符号表54219.4 比较实现符号表的各种方式543第20章 哈希54420.1 什么是哈希54420.2 为什么要使用哈希54420.3 将哈希表用作抽象数据结构54420.4 哈希技术的原理54520.5 哈希技术的组成要素54620.6 哈希表54620.7 哈希函数54720.8 负载因子54720.9 冲突54720.10 冲突解决技术54820.11 单独链接法54820.12 开放定址54820.12.1 线性探测54820.12.2 二次探测54920.12.3 二次哈希55020.13 比较各种冲突解决技术55020.14 哈希技术如何把复杂度降为O(1)55120.15 哈希技术55120.16 哪些问题不适合用哈希表解决55120.17 Bloom过滤器55220.17.1 工作原理55220.17.2 选择合适的哈希函数55320.17.3 设置长度合适的位向量55320.17.4 空间方面的优势55320.17.5 时间方面的优势55420.17.6 实现55420.18 与哈希有关的问题554第21章 字符串算法56521.1 介绍56521.2 字符串匹配算法56521.3 蛮力法56621.4 Rabin-Karp字符串匹配算法56621.5 用有限状态机来实现字符串匹配算法56721.5.1 状态机的运作过程56821.5.2 构建有限状态机时的注意事项56821.5.3 匹配算法56821.6 KMP算法56921.6.1 前缀表56921.6.2 匹配算法57121.7 Boyce-Moore算法57321.8 适合用来保存字符串的数据结构57321.9 用哈希表来保存字符串57421.10 用二叉搜索树来存放字符串57421.11 前缀树57421.11.1 什么是前缀树57421.11.2 为什么要使用前缀树57521.11.3 声明前缀树57521.11.4 向前缀树中插入字符串57621.11.5 在前缀树中查找字符串57621.11.6 用前缀树来表示字符串有什么缺点57721.12 三元搜索树57721.12.1 声明三元搜索树57721.12.2 向三元搜索树中插入字符串57821.12.3 在三元搜索树中查找字符串58021.12.4 显示三元搜索树中的全部字符串58021.12.5 在三元搜索树中查找*长的字符串58121.13 比较二叉搜索树、前缀树及三元搜索树58121.14 后缀树581

封面

程序员面试手册-概念.编程问题及面试题

书名:程序员面试手册-概念.编程问题及面试题

作者:纳拉辛哈.卡鲁曼希

页数:未知

定价:¥99.0

出版社:机械工业出版社

出版日期:2018-03-01

ISBN:9787111590118

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

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

发表评论

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