- 什么是平衡二叉树高度差
左右子树的平衡因子之差不超过1,并且左右子树都是平衡二叉树。
- 说下佛洛依德算法
Floyd算法求最短路径G=(V,E)中各个顶点最短路径时,需要引入矩阵d,矩阵中d[i][j]表示点i到点j的距离。
- 香浓定理和奈奎斯特定理
香农定理给出了传输速率和信噪比和带宽的关系,带宽不同吞吐量不同。
奈奎斯特定理是信息速率,极限速率等于2倍信道带宽。
- E-R模型
实体(考虑问题的对象),属性(实体和联系的特性),联系(实体之间的联系)
- 全局变量能否再重命名同名局部变量
能,但局部变量只在局部作用。
- 什么是平衡二叉树
又称AVL树,左右子树的高度之差不超过1,且左右子树也是平衡二叉树,其有更好平衡性,减小数的高度。
- 面向对象是什么?对象和对象之间怎么作用?
面向对象是将问题分析为对象,并实现对象的各种方法和动作,当要实现具体某个任务时只需调用对象的动作方法来达到完成任务,低耦合灵活性高。对象和对象通过消息来交流。程序流程由用户在使用中决定
- P和NP问题
P问题表示用多项式时间能解决的问题,NP问题只不能用多项式时间实现的问题。
- 栈是怎么作用的
栈用来保存现场/上下文,递归和回退,保存临时变量,用来逆向输出,存储数据
- Heap和Stack的概念和区别
Heap是堆,使用的自由空间大需要申请才能使用,且需要释放。
Stack是栈,空间较小,是由操作系统自动分配和释放。
- 对人的年龄进行排序应该用什么算法?
基数排序
- 图判断环和怎么去掉环?
图用拓扑结构来判断环,先将度为1的结点入队,然后出队,并入队结点数加1,出队时于其相连的所有节点度减1,再入队度为1的结点,最后看入队结点数是否等于结点数,若等于则没有环否则由环。
去掉环,判断环后,删除环内一个度为2的结点即除了环内结点没有连接其它结点的结点,然后再判断是否有环,否则继续。
- 软件需求
需求分析包含业务,用户,功能需求(开发人员必须完成的软件功能),非功能需求(包括安全性、可靠性、互操作性、健壮性等)。
- new和malloc的区别?
对malloc和free函数是c/c++的库函数,
在c++中其是面向对象的语言,不能简单的用malloc和free来进行申请和释放堆空间,需要构造函数和析构函数。
其中new类似于malloc函数和构造函数的合并。
- STL库和常用的容器有哪些?
STL库中由vector,set,map,hash_map等,vector是向量会自动重分配扩展空间,容器的核心是迭代器。
- const的作用?
const作用在变量说明不能改变,作用于函数表示此函数的数据不能修改。
const对象只能调用const函数,非const对象可以调用const函数。
- 指针和引用的区别?
指针可以两次指向,而引用只能引用一次,即**p合法,&&p非法,自增减(++ --)也不一样。
指针是变量,指向内存一个存储单元,需要分配内存区域,可以为空,引用只是别名不需要分配内存区域不能为空。
70.内存泄露?面对内存泄露和指针越界用那些方法?
当用malloc或者new申请动态空间时,需要用free或delete来释放动态空间,如没有释放则会内存泄露。
当我申请动态空间时,会同时决定好在哪里释放动态空间,防止泄露。
使用时记得指针的长度,动态分配内存最好不要再次赋值。
- 冯诺依曼体系结构
输入设备->存储器->输出设备,其中存储器有CPU(运算器+控制器)作用。
- 解释什么是带宽
又叫频宽,固定的的时间传输的资料数量,在传输管道中可以传递数据的能力。、频宽通常以bps(又称为比特率---bit per second)。
81.软件测试?
包含单元测试,集成测试,系统测试具体有功能测试,性能测试,兼容性测试等。
需要根据用户需求,开发规范,隐含要求来进行软件测试,可以是基本测试平台测试,自动化测试并编写测试文档。