内容
感觉内容无非是那几个:
数据结构与算法 + 计算机网络 + 操作系统 + C++基础语法知识
简单的送分题我就不说了,我说几个还有点迷惑性的点来整理一下:
1. 十字链表
在Linux内核中应用十分广泛的一种数据结构——十字链表,可以用来表示稀疏矩阵。
2. 线程与堆、栈的关系
栈——线程可以独立拥有,保存其运行状态和局部自动变量。 每个线程的栈相互独立。
堆,一个进程中的所有线程是共享堆的内存空间。
3. FTP
两种连接方式:
- 命令连接(类似于建立连接的过程) 21端口
- 数据连接 20端口
数据传输模式:
- 主动模式,服务器创建的连接
- 被动连接,客户端创建的连接
4. Telnet端口
Telnet服务器缺省端口为23.
5. 红黑树
这篇红黑树博客是真的不错,推荐看一下,皮得很
保证从根节点到叶子节点的最长路径不会超过最短路径的两倍。
6. 哈夫曼树
哈夫曼树(Huffman Tree)是在叶子结点和权重确定的情况下,带权路径长度最小的二叉树,也被称为最优二叉树。
7. 平衡二叉树
- 是一棵二叉查找树
- 左右子树的深度差不超过1
8. 悲观锁
共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程。
9. 乐观锁
总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。
可以使用版本号机制和CAS算法实现。
乐观锁适用于多读的应用类型,这样可以提高吞吐量
10. HTTP
无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间.
无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
11. NIM游戏
一堆 直接取走
两堆,取数量大的一堆到数量相等,模仿对手的操作直到获胜
若两堆数量相等,则后手必胜.
N堆 若处于非平衡状态,则先手必胜. 否则,后手必胜.
即将n堆石子的数量异或起来, 假如不为 0,那么先手必胜, 否则, 先手必败。
|