计算机复试面试问答准备(未完)

news2024/12/26 22:47:15

目录

    • 1、理解多态性
    • 2、怎么逆置⼀个链表
    • 3、顺序表和链表的区别
    • 4、树的存储结构
    • 5、什么是哈夫曼树?简述哈夫曼树的构造过程。介绍哈夫曼树的特性。
    • 6、哈夫曼编码的编码和解码过程
    • 7、图的遍历方式
    • 8、图的存储方式
    • 9、最小生成树
    • 10、迪杰斯特拉算法
    • 11、佛洛依德算法
    • 12、散列表
    • 13、排序
    • <font color="red">14、当键入网址后,到网页显示,其间发生了什么。

1、理解多态性

多态性就像是一只变色龙,它可以改变自己的形状和颜色来适应不同的环境。在软件工程中,多态性指的是一个对象能够表现出多种不同的行为,就像是变了个样子一样。

例如,我们可以有一个动物的类,里面有一个叫作"叫声"的方法。我们可以派生出不同的动物类,比如狗和猫。虽然它们都是动物,但是它们的叫声是不一样的。当我们调用"叫声"的方法时,根据具体是狗还是猫,它们会表现出不同的叫声。

所以,多态性就是让一个对象可以根据具体情况表现出不同的行为,就像变色龙一样。这样可以提高代码的灵活性和重用性。

Polygon  p = new Polygon () ;
Rectangle  r = new Rectangle () ;
p = r;

这段代码展示了多态性的概念。在这段代码中,我们首先创建了一个Polygon对象p,然后创建了一个Rectangle对象r。接下来,我们将r赋值给p,即p = r。这里发生了多态性的体现。

由于Rectangle是Polygon的子类,因此可以将Rectangle对象赋值给Polygon类型的变量。这样做的好处是可以以相同的方式处理不同类型的对象,即使用Polygon类型的变量p来调用Rectangle对象的方法。

通过这种方式,我们可以实现对不同类型对象的统一管理和操作,从而提高代码的复用性和灵活性。这就是多态性的优势所在。

2、怎么逆置⼀个链表

设置三个指针,指向链表中相邻的三个结点,依次更改每两个结点之间的链的方向,每次都进行两步操作:第一步,更改中间指针结点的next域为第一个指针,让中间的结点指向前面的结点;第二步,将这三个指针同时按照原来链表的方向向前移动

如果链表没有头结点,初始的情况需要特殊处理一下再开始重复后面的操作

3、顺序表和链表的区别

顺序表和链表是常用的两种数据结构,它们在存储和访问数据时有以下几方面的区别:

存储方式:顺序表使用一块连续的内存空间来存储数据,而链表则使用多个节点来存储数据,每个节点包含一个数据项和一个指向下一个节点的指针。

插入和删除操作:在顺序表中,插入和删除操作需要移动数据项的位置,这可能需要耗费较多的时间。而在链表中,插入和删除操作只需要修改节点的指针,所以效率较高。

访问元素:在顺序表中,可以通过下标直接访问元素,时间复杂度为O(1)。而在链表中,需要从头节点开始遍历,直到找到目标节点。所以链表的访问操作时间复杂度为O(n)。

空间占用:顺序表的空间占用是连续的,需要一块连续的内存空间,而链表的空间是分散的,每个节点可以在内存中的任意位置。

链表可以动态地分配内存空间,适用于需要频繁插入和删除操作的场景。而顺序表需要一开始就预先分配好内存,不适用于频繁插入和删除操作的场景。

根据具体的应用场景和需求,选择合适的数据结构可以提高程序的效率和性能。

4、树的存储结构

在这里插入图片描述

5、什么是哈夫曼树?简述哈夫曼树的构造过程。介绍哈夫曼树的特性。

哈夫曼树是一种最优二叉树,它的带权路径长度最小,而带权路径长度就是树中所有叶结点的带权路径长度之和。

哈夫曼树的构造过程如下:
在这里插入图片描述

1、将原始由一个结点构成的树按照根节点权值从小到大的顺序排列
2、选择根节点权值最小的两个树,构造一个新的二叉树,将这两个树的跟结点作为新树的左右孩子,新树的根节点的权值为两个结点的权值之和
3、将新构建的树加入权值序列中,将原来的两个结点从序列中删除
4、重复前面操作,直到权值序列只剩下一个结点为止

因为这样的特性,哈夫曼树能够应用数据压缩等方面,可以大大提高解决问题的效率。比如哈夫曼编码的字符集中每个字符都作为一个叶子结点,字符的频度作为结点的权值,这样的可变长度编码可以达到数据压缩的效果,因为存储的编码的二进制个数相当于所建立的树的带权路径长度。

哈夫曼树也可以进行扩展为k叉哈夫曼树,构造过程大体和2叉哈夫曼树的构造过程相同,只不过选择结点构造新树的时候选择的是k个根节点权值最小的树,而不是2个。另外,早构造k叉二叉树之前要补充一定的虚结点,使得构造的哈夫曼树是严格k叉树,即每一个分支节点都有k个孩子。

这样的k叉哈夫曼树可以用于外部排序中的构建最佳归并树的环节中,可以大大减少访问磁盘的次数。

6、哈夫曼编码的编码和解码过程

在这里插入图片描述

7、图的遍历方式

visited 数组防止重复访问

BFS:辅助队列、对于无向图,调用BFS函数的次数=连通分量数、空间复杂度:O(|V|)来自辅助队列

DFS:空间复杂度:O(|V|)来自递归栈
在这里插入图片描述

8、图的存储方式

在这里插入图片描述

9、最小生成树

连通图的生成树是包含图中全部顶点的一个极小连通子图
最小生成树是边权值之和最小的生成树

prim算法:从一个顶点开始构建生成树,每次将代价最小的新顶点纳入生成树,直到所有顶点都纳入为止。时间复杂度:O(V^2),适合边稠密

kruskal算法:每次选择一条权值最小的边,使这条边的两头连通(原本已经连通就不选),直到所有结点都连通。使⽤并查集,时间复杂度O(ElogE),适合顶点较多,边稀疏

10、迪杰斯特拉算法

在这里插入图片描述
时间复杂度O(V^2)
不适合于有负权值的带权图

11、佛洛依德算法

动态规划,时间复杂度O(V^3)
不能解决带有“负权回路”的图

12、散列表

在这里插入图片描述

13、排序

在这里插入图片描述

14、当键入网址后,到网页显示,其间发生了什么。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1544109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年3月26日 十二生肖 今日运势

小运播报&#xff1a;2024年3月26日&#xff0c;星期二&#xff0c;农历二月十七 &#xff08;甲辰年丁卯月己丑日&#xff09;&#xff0c;法定工作日。 红榜生肖&#xff1a;鸡、鼠、猴 需要注意&#xff1a;马、狗、羊 喜神方位&#xff1a;东北方 财神方位&#xff1a;…

修改网站源码,给电子商城的商品添加图片时商品id为0的原因

修改网站源码&#xff0c;给电子商城的商品添加图片时商品id为0的原因。花了几个小时查找原因。后来&#xff0c;由于PictureControl.class.php是复制CourseControl.class.php而来&#xff0c;于是对比了这两个文件&#xff0c;在CourseControl.class.php找到了不一样的关键几条…

GEE入门及进阶教程|在 Earth Engine 中绘制图像集合

在前面的内容中&#xff0c;我们计算了增强植被指数 (EVI)&#xff0c;以说明卫星图像上的波段运算&#xff0c;代码在单个图像上被调用一次。 如果我们想以相同的方式计算整个 ImageCollection 中的每个图像的 EVI&#xff0c;该怎么办&#xff1f;在这里&#xff0c;我们使用…

Java Swing游戏开发学习17

内容来自RyiSnow视频讲解 这一节讲的是Event(Damage Pit, Healing Pool, Teleport Tile)&#xff0c;直译&#xff1a;事件&#xff08;伤害深坑(类似陷阱吧)&#xff0c;治愈池&#xff0c;传送瓦片&#xff09; 事件&#xff08;陷阱【掉进去回掉血】&#xff0c;治愈池【可…

js获取cookie

js获取cookie 前言实现讲解特别注意&#xff1a; 前言 主要是通过document.cookie来进行实现的 实现讲解 首先通过document.cookie 来获取到所有的cookie 然后通过分号进行分割成list 然后循环list,将list中的字符串通过首个等号进行分割然后和指定的cookie名进行比对然后返…

浙政钉小程序加入埋点

研究好久&#xff0c;终于知道埋点怎么写了&#xff0c;我是使用原生写的&#xff0c;请参考&#xff01; 小程序埋点只需要添加稳定性监控代码&#xff08;Emas&#xff09;和流量分析代码(A) **稳定性监控代码&#xff08;Emas&#xff09;**只需要在首页加入。**流量分析代码…

关系型数据库mysql(6)备份与恢复

一.数据备份的重要性 &#xff08;1&#xff09;在生产环境中&#xff0c;数据的安全性至关重要 &#xff08;2&#xff09;任何数据的丢失都可能产生严重的后果 &#xff08;3&#xff09;造成数据丢失的原因 程序错误人为操作失误运算错误磁盘故障灾难&#xff08;如火灾…

Selenium 自动化 —— 切换浏览器窗口

更多内容请关注我的 Selenium 自动化 专栏&#xff1a; 入门和 Hello World 实例使用WebDriverManager自动下载驱动Selenium IDE录制、回放、导出Java源码浏览器窗口操作 平时我们在使用浏览器时&#xff0c;通常会打开多个窗口&#xff0c;然后再多个窗口中来回切换&#xf…

SuperGluePretrainedNetwork 详细解读

目录结构展示了SuperGluePretrainedNetwork项目的简化版布局。这是一个关于使用SuperGlue算法进行图像配对的深度学习项目&#xff0c;主要包括预训练的模型和执行配对的脚本。 demo_superglue.py demo_superglue.py脚本的主要作用是展示SuperGlue预训练网络在图像对上进行特征…

YZ系列工具之YZ09: VBA_Excel之读心术

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

springboot项目学习-瑞吉外卖(4)

1.任务 这一节主要的任务是解决文件的上传和下载功能 2.文件上传 概念&#xff1a;将本地的图片上传到浏览器上面 点击文件上传&#xff0c;前端就会发送如上的请求&#xff0c;服务端应该根据URL和请求方法来处理请求 CommonController类&#xff1a; RestController Slf4j …

unity学习(66)——控制器Joystick Pack优化

Joystick Pack这种重力带惯性不利于正常开发。决定进行优化。有一种万事俱备只欠东风的感觉。 源代码如下&#xff1a; 1.在脚本中找到轮盘所输出的方向值 2.把方向的改变值加到鸣人模型身上。 2.1控制器脚本中添加model变量 2.2在unity中赋值 2.3代码中修改位置 using Syst…

咕炮课堂Java架构师课程

课程介绍 主要针对1到5年及以上工作经验的开发人员&#xff0c;提供互联网行业热门技术的Java架构师专题培训&#xff0c;由业内技术大牛&#xff0c;行业及实战经验丰富的讲师进行技术分享。内容涵盖redis,mongodb,dubbo,zookeeper,kafka 高并发、高可用、分布式、高性能、并…

SSM整合遇到的问题,非常干货,希望能帮助到您~

你们好&#xff0c;我是金金金。 无法自动装配 配置类已经配置了扫描 那是什么原因导致&#xff1f; 解决 很明显位置都不在一起&#xff0c;需要更改。 结果类型不匹配select id“selectEmployeeByCondition” 什么原因导致&#xff1f; 这个是因为我建立了很多子模块 名字…

360奇酷刷机 360刷机助手 QIKU Download Assistant

360奇酷刷机 360刷机助手 QIKU Download Assistant 破 解 360手机刷机资源下载链接&#xff1a;360rom.github.io 参考&#xff1a;360手机-360刷机360刷机包twrp、root 360奇酷刷机&#xff1a;360高通驱动安装 360手机刷机驱动&#xff1b;手机内置&#xff0c;可通过USB文件…

Spark spark-submit 提交应用程序

Spark spark-submit 提交应用程序 Spark支持三种集群管理方式 Standalone—Spark自带的一种集群管理方式&#xff0c;易于构建集群。Apache Mesos—通用的集群管理&#xff0c;可以在其上运行Hadoop MapReduce和一些服务应用。Hadoop YARN—Hadoop2中的资源管理器。 注意&…

(1) 易经与命运_学习笔记

个人笔记&#xff0c;斟酌阅读 占卦的原理 三个铜板&#xff0c;正面是3&#xff0c;反面2&#xff0c;三个一起转&#xff0c;得出6,7,8,9 数字象6老阴7少阳8少阴9老阳 生数和成数 生数和成数应该说出自《河图》。其中一二三四五为生数&#xff0c;六七八九十为成数。 生…

程序员实用学习平台,必看榜!

只要卷不死&#xff0c;就往死里卷&#xff01; 高中老师宣扬的励志鸡汤&#xff0c;仿佛走出了校园踏入社会仍然适用。 “出走半生&#xff0c;归来仍是少年。”emm....... 如今比麻花还卷的社会&#xff0c;学到老才能活到老啊~尤其咱们IT这么优胜劣汰的行业&#xff0c;自是…

计算机408炸了!大多数人都栽在这门课上

组成原理>>数据结构>操作系统>计算机网络 在本科时&#xff0c;我在学习组成原理之前已经学过数字电路和模拟电路&#xff0c;但在接下来学习组成原理时&#xff0c;我依然感到困难。也许是因为自己理解能力不足&#xff0c;总觉得难以掌握&#xff0c;甚至在考研…

redis实际应用场景及并发问题的解决

业务场景 接下来要模拟的业务场景: 每当被普通攻击的时候&#xff0c;有千分之三的概率掉落金币&#xff0c;每回合最多爆出两个金币。 1.每个回合只有15秒。 2.每次普通攻击的时间间隔是0.5s 3.这个服务是一个集群&#xff08;这个要求暂时不实现&#xff09; 编写接口&…