保研面试复习之数据结构篇

2023-05-16

  1. 数据项、数据元素和数据结构的概念。

数据项是组成数据元素的,有独立含义的,不可分割的最小单位。数据元素是数据的基本单位。数据结构是带结构的数据元素的集合。数据结构包括逻辑结构和存储结构两个层次。
数据结构的三要素是逻辑结构,存储结构和数据的运算。

  1. 逻辑结构和存储结构区别。

逻辑结构包括集合结构、线性结构、树结构和图结构。
存储结构包括顺序存储结构、链式存储结构、索引存储结构、散列存储结构。
顺序存储结构是逻辑上相邻的元素在物理位置上也是相邻的。链式存储结构是在逻辑上相邻的元素物理位置不一定相邻。索引存储结构是在存储元素信息的同时建立附加的索引表,索引表包括关键字和地址。散列存结构是根据元素的关键字,可以直接计算出元素的存储地址。
在这里插入图片描述

  1. 算法的5个重要特性:有穷性,确定性,可行性,输入0个或多个,输出一个或多个。大O是所有语句频度之和的数量级。算法时间复杂度不仅依赖于问题的规模,也取决于待输入数据的性质。

  2. 算法的时间复杂度取决于问题的规模和待处理数据的初始状态。

  3. 单链表的结点包括两个域:一个是数据域,一个是指针域。

  4. 链表增加头结点的作用:便于首元结点的处理;便于空表和非空表的统一处理。

  5. 顺序表和链表的比较:
    在这里插入图片描述

  6. 一个递归算法必须包括终止条件和递归部分。

  7. 字符串是由0个或多个字符组成的有限序列。字符串的数据元素是单个字符。

  8. 二叉树的性质:

  • 在二叉树的第i层上至多有 2 i − 1 2^{i-1} 2i1个结点,i≥1。
  • 深度为k的二叉树,至多有 2 k − 1 2^k-1 2k1个结点 k≥1。
  • 对任何一颗二叉树T,如果其终端结点数为 n 0 n_0 n0,度为2的结点数为 n 2 n_2 n2,则 n 0 = n 2 + 1 n_0=n_2+1 n0=n2+1
  • 具有n个结点的完全二叉树的深度为 ┗ l o g 2 n + 1 ┚ ┗log_2n+1┚ log2n+1
  • 如果将一棵有n个结点的完全二叉树自顶向下,同一层自左向右连续给结点编号1,2,3,......,n,然后按此结点编号将树中各结点顺序的存放于一个一维数组,并简称编号为i的结点为结点i( i>=1 && i<=n),则有以下关系:
    (1)若 i= 1,则结点i为根,无父结点;若 i> 1,则结点 i 的父结点为结点int_DOWN(i / 2);
    (2)若 2*i <= n,则结点 i 的左子女为结点 2*i;
    (3)若2*i<=n,则结点i的右子女为结点2*i+1;
    (4)若结点编号i为奇数,且i!=1,它处于右兄弟位置,则它的左兄弟为结点i-1;
    (5)若结点编号i为偶数,且i!=n,它处于左兄弟位置,则它的右兄弟为结点i+1;
    (6)结点i所在的层次为 int_DOWN(log(2,i))+1。
  1. 哈弗曼树又称最优树,是一类带权路径长度最短的树。一颗有n个叶子结点的哈弗曼大树,共有2n-1个结点。
  2. 树的存储结构:双亲表示法、孩子表示法、孩子兄弟表示法。
  3. 对于无向图,若有n(n-1)/2条边,则称为无向完全图;对于有向图,若具有n(n-1)条边,则称为有向完全图。
  4. 强连通图和强连通分量是针对有向图。一个极小连通子图,它含有图中全部顶点,但只有足以构成一棵树的n-1条边,这样的连通子图称为连通图的生成树。
  5. 二叉树的遍历算法分为先序遍历、中序遍历,后序遍历;图遍历算法分为深度优先搜索遍历和广度优先搜索遍历。
  6. 图的深度优先遍历,类似于二叉树的先序遍历;图的广度优先遍历,类似于二叉树的层次遍历。
  7. 构造最小生成树是需要选择n个结点和n-1条最小的边。
  8. 普里姆算法,加点法:选择与点相关的最短路径。归并点,时间复杂度为 O ( n 2 ) O(n^2) O(n2)适用于稠密网。
    克鲁斯卡尔算法是选择集合中权值较小的点。归并边,时间复杂度为 O ( e l o g 2 e ) O(elog_2e) O(elog2e)适用于稀疏网。
  9. 迪杰斯特拉算法是求解从某个源点到其余各顶点的最短路径。此过程中不需遍历图中所有的点。弗洛伊德算法是求解每一对顶点之间的最短路径算法。
  10. 拓扑排序利用的是AOV网是无权有向无环图,实现过程中利用了栈,可以用来判断一个有向图是否有环。 AOE网解决关键路径问题是带权有向无环图。
  11. 平衡二叉树是一种特殊的2叉排序树,又称avl树。
  12. 构造散列函数的方法有数字分析法、平方取中法、折叠法、除留余数法。处理冲突的方法有开放地址法和链地址法。开放地址法又分为线性探测法、二次探测法和伪随机探测法。比较次数取决于散列函数、处理冲突的方法和散列表的装填因子。

在这里插入图片描述
23. 使用循环比递归的效率高吗?

不一定,因为递归的优点是代码简洁清晰,容易检查正确性;缺点是当递归调用的次数较多时,要增加额外的堆栈处理,有可能产生堆栈溢出的情况,对执行效率有一定的影响。循环的优点是结构简单速度快,缺点是它不能解决全部的问题,有些问题适合用递归来处理,而不适合用循环。
递归可以理解为递推和回归,相当于一个树结构,其过程相当于是树的深度优先遍历。迭代是一个环结构。

  1. 贪心算法、动态规划、分治法的区别。

贪心算法是求解局部最优解,自顶向下,得到的最后结果不能保证是全局最优解;
动态规划是分解将原问题分解为若干个项重叠的子问题,然后通过解决子问题来得到原问题的解;
分治法分为分解、解决、合并,就是将原问题分解为若干个规模较小的与原问题结构相似的,互不相关的子问题。然后递归地求解子问题,合并这些子问题的解得到原问题的解。

  1. 栈在括号匹配中匹配中的算法思想。

如果出现的是左括号,则进栈。如果出现的是右括号,则检查栈是否为空,若为空则表示右括号多余,或不为空,则检查栈顶元素是否为左括号,如果是则表明匹配,如果不是,则表明不匹配。表达式检验结束时,若栈为空,匹配正确,否则表明左括号有余。

  1. 栈在后缀表达式求值中的应用。

顺序扫描表达式的每一项,如果是操作数则入栈,如果是操作符则出连续出栈顶两个操作数,并进行运算,将结果重新加入栈中。当表达式的所有操作数都处理完成后,则栈顶存放的是表达式的计算结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保研面试复习之数据结构篇 的相关文章

随机推荐

  • badblocks命令来检查硬盘是否有坏道

    硬盘是一个损耗设备 xff0c 当使用一段时间后可能会出现坏道等物理故障 电脑硬盘出现坏道后 xff0c 如果不及时更换或进行技术处理 xff0c 坏道就会越来越多 xff0c 并会造成频繁死机和数据丢失 最好的处理方式是更换磁盘 xff0
  • 图文教学读懂can报文

    can报文协议是汽车工程最基础的知识点 DBC协议 can有两种定义 Intel格式与Motorola格式 xff0c 主要的区别是能不能跨字节 xff0c 我们用主流的摩托摩拉格式 以一个报文ID 0x121为例 xff0c 他的解析如下
  • 四旋翼无人机数学模型推导

    本周开始进行四旋翼无人机的学习工作 xff0c 首先来进行四旋翼无人机的数学模型推导工作 四旋翼动力学数学模型 坐标变换 介绍四旋翼数学模型之前 xff0c 首先引入坐标变换的概念 xff0c 定义两个坐标系惯性坐标系 E xff0c 以及
  • NVIDIA Jetson Xavier NX 计算GPIO编号

    NVIDIA Jetson Xavier NX 计算GPIO编号 前言准备工作计算步骤计算示例注意 xff1a 附件 xff1a tegra gpio h参考链接 前言 公司产品使用了自主设计的载板 xff0c 需要使用指定的GPIO引脚
  • 深度学习人脸表情识别中,需要比较数据集中的文件名和train_list.txt中的文件名是否相一致的java代码实现

    如下图所示 xff0c 现有一个人脸表情数据集RAF DB xff0c 其train文件中的每一个图片的文件名称为 train 00001 aligned jpg 另外 xff0c 有train list txt文件标记了上图文件夹每一张数
  • git拉取后,代码被覆盖怎么办?

    1 File gt Local History gt Show History 2 右击 xff0c Revert找回本地历史版本
  • 【面试】C/C++面试宝典一

    1 const 修饰变量 xff0c 说明该变量不可以被改变 xff1b 修饰指针 xff0c 分为指向常量的指针 xff08 pointer to const xff09 和自身是常量的指针 xff08 常量指针 xff0c const
  • Docker安装Xfce桌面环境(轻量可视化操作系统)

    0 Xfce是什么 xff1f Xfce是一个适用于类UNIX操作系统的轻量级桌面环境 它的目标是快速而低廉的系统资源 xff0c 同时仍然具有视觉吸引力和用户友好性 具体参考官网 https www xfce org 项目地址 xff1a
  • Linux系统常用快捷键及VNC基本使用命令

    Linux系统常用快捷键及VNC基本使用命令 文章目录 Linux系统常用快捷键及VNC基本使用命令Linux系统的特点Linux树型目录结构Linux系统常用命令VNC常用命令 Linux系统的特点 多任务系统 在linux系统中可以同时
  • 【docker】docker学习(3)——Dockerfile的常用语法和编写实战

    大家好 xff0c 我是好学的小师弟 xff0c 今天和大家分享下Dockerfile的常用语法和编写实战 插曲 xff1a 在学习Dockerfile之前 xff0c 我们先讲解下docker save 和docker load 这两个命
  • 1.2 安装 docker 容器并配置镜像加速器

    1 2 1 实验环境准备 实验环境 xff1a CENTOS7 9 64 位 主机名 xff1a hou 主机 ip 10 0 8 120 xff08 这个 ip 大家可以根据自己所在环境去配置 xff0c 配置成静态 IP xff09 4
  • 弯管参数计算及编程实现

    船舶软件建立三维管道模型后 xff0c 需要自动生成管子加工信息 xff0c 这样就提高了设计效率 其中弯管参数主要是下料长度 xff0c 弯角和转角 下料长度是由各管段实长 xff0c 即管子中心线长度 xff0c 减去弯管部分切线长再加
  • 完整版数据库系统概论(第五版)-课后答案-免费网盘自提

    包含全部的课后答案与复习笔记 xff01 大家伙不挂科不被刷 xff0c 一起冲 xff01 虽然这个我也是找的别人的 xff0c 但是真的好用 xff01 百度网盘 https pan baidu com s 1Ux07PWvPb k3l
  • 踩坑笔记:安装Gazebo11

    安装环境 xff1a ubuntu18 04 在我上一篇博客中 xff0c 我们安装了ROS Melodic amp amp Ros2 Dashing 在我想要安装Gazebo11时候出现了错误 一 依赖错误 安装Gazebo11 xff1
  • 在keil5中调试串口遇到的问题

    1 问题 在keil5中调试stm32串口实验时 xff0c 向单片机的串口1发送数据 xff0c 观察串口1的寄存器 xff0c 此时串口1的中断服务函数会遇到无法进入下图if 的情况 xff0c 此时观察串口1寄存器 RXEN 的值 由
  • 树莓派在上电后一直重启进入不了系统桌面

    问题描述 树莓派在上电后一直重启进入不了系统桌面 xff0c 在检查了各种接口没问题后解决办法 原因分析与解决方案 xff1a 用了键盘 鼠标 显示器后5v 1A的插头不行 xff0c 换了ipad用的5V 2A的充电器后就可以开启了 xf
  • 树莓派连接“手机热点“或“WiFi“ 后无法上网,以及连接“手机热点“或“WiFi“时VNC连接失败问题

    问题描述 之前一直在开热点 xff0c 通过电脑端VNC控制树莓派拍摄照片 xff0c 今天突然发现树莓派上不去网 xff0c 所以就试着尝试解决了一下 xff0c 心路历程如下 xff1a 要么就是树莓派连不上网 xff0c 要么就是连上
  • 相机标定和双目相机标定标定原理推导及效果展示

    文章目录 前言一 相机标定1 相机的四个坐标系2 相机的畸变 二 张正友标定法1 求解内参矩阵与外参矩阵的积2 求解内参矩阵3 求解外参矩阵4 标定相机的畸变参数5 双目标定6 极线矫正 xff08 立体校正 xff09 三 视差图与深度图
  • keras:tensor从全连接层输出到卷积层

    一 tensor从卷积层输出到全连接层 用过keras的都知道 xff0c 想从卷积层输出tensor到全连接层 xff0c 只需加一层 xff1a model add Flatten shape就不会出现错误 二 但是如果从全连接层输出t
  • 保研面试复习之数据结构篇

    数据项 数据元素和数据结构的概念 数据项是组成数据元素的 xff0c 有独立含义的 xff0c 不可分割的最小单位 数据元素是数据的基本单位 数据结构是带结构的数据元素的集合 数据结构包括逻辑结构和存储结构两个层次 数据结构的三要素是逻辑结