考研复试-数据结构-面试题
1.如何去度量一个算法的效率?
答:度量一个算法的效率是通过时间复杂度和空间复杂度。
2.请详细说一下数组与链表的区别
答:
- 数组必须事先定义固定的长度,它并不能适应数据动态的增长,当数据增加的时候,有可能会发生数组越界。而当数据减少的时候,又有可能会造成内存空间的浪费。
- 链表是可以动态的进行存储分配的。它可以很方便的进行数据的插入和删除。只需要改变指针的指向即可
- 数组可以根据下标直接存取,而链表必须通过next指针才能找到下一个元素。
- 数组是从栈中分配空间,对于程序员来说比较方便,但是它的自由度小,而链表是从堆中分配空间,自由度大但是申请管理比较麻烦。
故综上所述,如果需要快速访问数据,而不经常进行插入和删除元素,就应该用数组。相反,就用链表数据结构。
3.说一下栈和队列的区别。
答:
- 栈(Stack)是只允许在一端进行插入或删除操作的线性表。栈的特性可以概括为后进先出(Last In First Out,LIFO)
- 队列(Query)也是一种操作受限制的线性表。它只允许在表的一端进行插入,而在表的另一端进行删除。其操作特性是先进先出(First In First Out,FIFO)
4.怎么判断链表是否有环?
答:使用快慢指针。
两个指针分别按照固定步长行走,p1一次走一步,p2一次走2步,如果链表有环,p1和p2会有相遇的时刻。
5.请说一下KMP算法的步骤。
答:
在一个字符串中查找是否包含目标的匹配字符串。其主要思想是每趟比较过程让字串先后滑动一个合适的位置,当发生不匹配的情况时,不是右移一位,而是移动(当前匹配的长度-当前匹配字串的部分匹配值)
------KMP算法不太熟练,记得去看王道视频巩固一下--------
6.说说什么是二叉树?你对二叉树有哪些了解?为和使用二叉树呢?
答:二叉树是另一种树形结构,它的特点是每个结点至多有两棵子树,(即二叉树中不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。
二叉树是一种最基本最典型的排序树,用于教学和研究数的特性,本身很少在实际中进行应用,就像冒泡排序一样,虽然因为效率问题并不实用,但是还是一种教学例子的好手段。
7.请说一下什么是二叉排序树。
答:具有以下特性的二叉树就是排序二叉树。
若左子树非空,则左子树上所有结点的值均小于根结点的值。
若右子树非空,则右子树上所有结点的值均大于根结点的值。
左右子树也分别是一棵二叉排序树。
左子树结点值<根结点值<右子树结点值
8.什么是平衡二叉树?
答:为避免树的高度增长过快,降低二叉排序树的性能,故规定在插入和删除二叉树结点时,要保证任意结点的左,右子树高度差的绝对值不超过1,将这样的二叉树称为平衡二叉树。
9.请同学说以下dfs和bfs的区别。
答:
- BFS是指广度优先搜索(Breadth-First-Search),类似于二叉树的层次遍历算法。DFS是指深度优先搜索(Depth-First-Search),类似于树的先序遍历。
- BFS的实现方法时队列,BFS的实现方法是栈和递归。
- BFS算法常常用来求解单源最短路径问题,DFS则常常用来解决连通性问题。
- BFS的基本思想是:首先访问起始顶点v,接着由v出发,依次访问v的各个未访问过的邻接顶点w1,w2,…,wi,然后依次访问w1,w2,…wi的所有未被访问过的邻接顶点,再从这些访问过的顶点出发,访问它们所有未被访问过的邻接顶点,直至图中所有顶点都被访问过为止。
- DFS的基本思想是:首先访问图中某一起始顶点v,然后由v出发,访问与v邻接且未被访问的任一顶点w1,再访问与w1邻接且未被访问的任一顶点w2…重复上述过程,当不能再继续向下访问时,依次退回到最近被访问的顶点,若它还有邻接顶点未被访问过,则从该点开始继续上述搜索过程,直至图中所有顶点均被访问过为止。
10.请简述dijkstra算法过程。
-------忘得差不多了,看王道课程------------------------------------
11.排序算法有哪些?
答:常见的排序算法有
直接插入排序,折半插入排序,希尔排序(shell sort);
冒泡排序(bubble sort),快速排序;
简单选择排序,堆排序;
归并排序(merge sort)
基数排序
12.简述快速排序的过程。
13.各类排序算法的对比。
14.选择排序算法准则。
15.怎么理解哈希表,哈希表是什么?
16.请同学说下解决哈希冲突的方法。
17.用循环比递归效率高吗?
18.贪心算法和动态规划以及分治法的区别?
19.什么时候最小生成树唯一?
20.B树和B+树的区别,以一个m阶树为例。
考研复试-数据结构-面试题相关推荐
- 考研复试操作系统面试题(一)-IO系统
写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来. 这只是一部分,陆续还有操作系统的其它章节,还会推出数据结构.计算机网络.数据库的复试题整理 思维导图在我的 ...
- 考研复试机器学习面试题,我承认有赌的成分
马上就要考研复试了,如果你的导师不搞机器学习领域,那真的皆大欢喜.如果他在搞机器学习,我不得不预判导师的走位和他要放的技能.我心里是非常惶恐的,别说机器学习,就是python也略知一二.万一导师提到机 ...
- 考研复试-数据库面试题
准备复试时自己从别的博客上复制的一些面试题,因为当时都复制到一个文本文件中了,也不知道从谁的博客上复制的. 触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的.它可以强化约 ...
- 考研复试——数据结构
文章目录 数据结构 什么是数据结构? 逻辑结构和物理结构有什么区别? 为什么对单链表设置头结点? 算法的特点? 常见的数据结构有哪些? 栈在后缀表达式求值的算法思想: 队列溢出现象?解决方法? 判断一 ...
- 考研复试-数据库-面试题
1.数据库管理系统的主要功能是什么? 数据定义·,数据操纵,数据库的运行管理,数据库的建立与维护 2.数据库系统的特点是什么? 数据结构化. 数据共享性高,数据冗余度低. 数据独立性高. 由DBMS统 ...
- 考研复试-操作系统面试题
1. 事务的四个属性 ACID.即原子性(atomicity).一致性(consistency ).隔离性(isolation).持久性( durability). 原子性:表示这事务要么做,要么不做 ...
- 考研复试-计算机网络-面试题
1.OSI,TCP/IP,五层协议的体系结构是怎样的?它们之间又有哪些区别呢? 答:好的,谢谢老师的提问. osi协议分为7层,从上至下分别为,应用层-表示层-会话层-网络层-数据链路层-物理层. t ...
- 华科计算机考研复试往年机试题
题目来源 对应的C++源代码答案
- 南京理工大学计算机复试题库,南京理工大学考研复试计算机数据库试题
一.选择题(选择一个最合适的答案)60% 1.在实体/联系图(E/R图)中,实体集的每个属性都隐含为: A多值.B单值.C不允许为NULL.D前三者都不对. 2."两个实体集之间若有联系,则 ...
最新文章
- 我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
- 设计模式 之 装饰者模式
- tomcat 目录配置 appBase和docBase 简介
- django之jquery完成ajax
- python 配置文件解析代码_python3从零学习-5.5.2、configparser — 配置文件解析器
- python行数据切片_通过切片访问DataFrame行
- zoj3802:easy 2048 again(状压dp)
- python 操作同花顺下单程序_Py(76)Python/C API 参考手册:操作系统实用程序
- 教你如何使用数字组件,制作有灵魂的数据可视化大屏
- C#调用报表生成器成功案例示例研究
- 用jQuery制作对联广告
- 利用android实现汇率计算器,利用python编写一个汇率计算器
- End event threw exception
- 中国大学数据科学与大数据技术专业排名!2021软科排名
- Transformer代码详解与项目实战之Masking
- 利用java实现发送邮件
- 基于Spring Boot框架的驾校学员信息管理系统
- 从键盘读入学生成绩,找出最高分, 并输出学生成绩等级
- 所有身体器官的英文单词
- linux下部署服务,启动时显示socket注册失败。数据库连接失败。求帮下忙。
热门文章
- epoll的反应堆实现模式
- 山西省忻州一中2021高考成绩查询,【高考直击】2021年高考今日开考
- Kali2022 系统语言怎么切换中文
- python 测试用例 自动生成目录_如何在python中自动向测试套件添加十几个测试用例...
- 外贸建站之独立站系统选择
- 【RSA-Tool 2 by tE】的使用
- python简单的加法问题_Python实现20以内加减法练习
- python跑得慢_为什么我的smo跑得这么慢?
- SpringCloud H版 Config 配制中心讲解
- 38年后的今天,用数据回顾什么是女排精神?