数据结构复试问题整合、数据结构面试、问题记录

1.关键路径是用什么数据结构实现的?

回答:有向图,并且是没有回路的

2.是不是所有的图都可以实现关键路径?

回答:不是,只有有向图,并且是没有回路。

3.栈和队列的区别?

回答:
栈和队列都是操作受限的线性表
栈的特点是只能在栈尾入栈、出栈,是先进后出
队列的特点是队尾进,队首出,是先进先出。

4.在哪里用到过栈的队列?

回答:
关于栈的应用,递归,函数调用,迷宫求解;
关于队列的应用,二叉树的层次遍历,图的广度遍历

5.度为2的树和二叉树的区别?

回答:
度为2 的树是指树中结点的度最大为2;
而二叉树的形式可以分为5种,可以是空树,只有根结点,只有左子树,只有右子树,左右子树都有。所以二叉树的度可以为0,1,2。并且二叉树的左右子树是有次序的。

6.图的遍历方法

回答:
深度优先遍历,时间复杂度是O(n²),使用递归
广度优先遍历,时间复杂度是O(n+e),其中e为图中边的个数,使用队列。

7.最小生成树的两种方法,以及时间复杂度,各适用于什么情况,为什么?

回答:
1.普利姆算法
思想:每次选取当前生成树相接边中的最短边,将顶点并入当前生成树,直到所有的顶点都并入。
时间复杂度:O(N^2),
适合稠密图
2.克鲁斯卡尔算法
思想:将图中边权值按照从小到大排序,然后从最小边开始扫描,并检测当前边是否为候选边(是否形成回路)。主要针对边展开
时间复杂度:O(e*loge),e为边数
适合稀疏图

8.微信中用到了什么数据结构

1.索引——查找好友
2.有向图——用户是顶点,是否加好友是边

9.最好时间复杂度和最坏情况的时间复杂度一样的排序是啥?

希尔排序
选择排序
堆排序
归并排序
基数排序

10.

热备份和冷备份是啥

你可能感兴趣的:(数据结构,面试)