马上消费金融股份有限公司1月招聘面试题109道2020110

●队列通常采用两种存储结构是 (34) 。

(34) A.顺序存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构


正确答案:A
【解析】队列通常采用两种存储结构是顺序存储和链表存储。


● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (37) 。

(37)A. 栈适合采用数组存储,队列适合采用循环单链表存储

B. 栈适合采用单链表存储,队列适合采用数组存储

C. 栈和队列都不允许在元素序列的中间插入和删除元素

D. 若进入栈的元素序列确定,则从栈中出来的序列也同时确定


答案:B

顺序表示的栈和队列,必须预先分配空间,并且空间大小受限,使用起来限制比较多。而且,由于限定存取位置,顺序表示的随机存取的优点就没有了,所以,链式结构应该是首选。

 


下列叙述中正确的是( )。

A.线性链表的各元素在存储空间中的位置必须是连续的

B.线性链表的头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
解析: 性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


● 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是 (37) 。

(37)

A. 栈适合采用数组存储,队列适合采用循环单链表存储

B. 栈适合采用单链表存储,队列适合采用数组存储

C. 栈和队列都不允许在元素序列的中间插入和删除元素

D. 若进入栈的元素序列确定,则从栈中出来的序列也同时确定


正确答案:C
试题(37)分析
    本题考查数据结构基础知识。
    在应用中,栈和队列都作为容器使用。在运算方式上,栈结构的特点是后进先出,队列的特点是先进先出。在存储结构的选择上,需要考虑使用栈或队列的应用场合及数据的特点和规模等,没有统一的标准。若开发系统已经实现了栈和队列结构,则无须考虑栈和队列的存储结构,只要按照规定的接口使用即可。应用栈时,只要栈不空,就可以令栈顶元素出栈;只要栈不满,就可以令元素进栈,因此元素的入栈次序一定时,出栈次序有多种选择。
参考答案
C


下列叙述中正确的是( )。

A.线性链表的各元素在存储空间中的位置必须是连续的.

B.线性链表的头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
解析: 性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


马上消费金融股份有限公司 1月招聘面试题 面试题 面试官常问到的一些题目整理如下: 问题 Q1:描述数组、链表、队列、堆栈的区别? 可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q2:简述一下scrapy的基本流程? 可用的回答 : scrapy分为9个步骤: 1. Spiders需要初始的start_url或则函数stsrt_requests,会在内部生成Requests给Engine; 2. Engine将requests发送给Scheduler; 3. Engine从Scheduler那获取requests,交给Download下载; 4. 在交给Dowmload过程中会经过Downloader Middlewares(经过process_request函数); 5. Dowmloader下载页面后生成一个response,这个response会传给Engine,这个过程中又经过了Downloader Middlerwares(经过process_request函数),在传送中出错的话经过process_exception函数; 6. Engine将从Downloader那传送过来的response发送给Spiders处理,这个过程经过Spiders Middlerwares(经过process_spider_input函数); 7. Spiders处理这个response,返回Requests或者Item两个类型,传给Engine,这个过程又经过Spiders Middlewares(经过porcess_spider_output函数); 8. Engine接收返回的信息,如果使Item,将它传给Items Pipeline中;如果是Requests,将它传给Scheduler,继续爬虫; 9. 重复第三步,直至没有任何需要爬取的数据 问题 Q3:提到Python中局部变量和全局变量的规则是什么? 可用的回答 :局部变量:如果在函数体内的任何位置为变量赋值,则假定它是本地的。 全局变量:仅在函数内引用的那些变量是隐式全局变量。 问题 Q4:如何解释Python? 可用的回答 :Python语言是一种解释语言。 Python程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,再次转换为必须执行的机器语言。 问题 Q5:说一下Django,MIDDLEWARES中间件的作用? 可用的回答 : 中间件是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。 问题 Q6:生成器? 可用的回答 :生成器的本质就是一个逐个返回元素的函数,即“本质函数” 最大的好处在于它是“延迟加载”,即对于处理长序列问题,更加的节省存储空间。即生成器每次在内存中只存储一个值 问题 Q7:django对数据查询结果排序怎么做,降序怎么做,查询大于某个字段怎么做? 可用的回答 : 排序使用order_by() 降序需要在排序字段名前加- 查询字段大于某个值:使用filter(字段名_gt=值) 问题 Q8:Python中的module和package是什么? 可用的回答 :在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。Python程序的文件夹是一个模块包。包可以包含模块或子文件夹。 问题 Q9:数据库的优化? 可用的回答 : 1. 优化索引、SQL 语句、分析慢查询; 2. 设计表的时候严格根据数据库的设计范式来设计数据库; 3. 使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘IO; 4. 优化硬件;采用SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等; 5. 采用MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率; 6. 垂直分表;把一些不经常读的数据放在一张表里,节约磁盘I/O; 7. 主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来; 8. 分库分表分机器(数据量特别大),主要的的原理就是数据路由; 9. 选择合适的表引擎,参数上的优化; 10. 进行架构级别的缓存,静态化和分布式; 11. 不采用全文索引; 12. 采用更快的存储方式,例如 NoSQL存储经常访问的数据 问题 Q10:大数据的文件读取? 可用的回答 : 1. 利用生成器generator 2. 迭代器进行迭代遍历:for line in file 算法题 面试官常问到的一些算法题目整理如下(大概率会机考): 算题题 A1:根到叶的和 题目描述如下: Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. An example is the root-to-leaf path 1-2-3 which represents the number 123. Find the total sum of all root-to-leaf numbers. Note: A leaf is a node with no children. Example: Input: 1,2,3 1 / 2 3 Output: 25 Explanation: The root-to-leaf path 1-2 represents the number 12. The root-to-leaf path 1-3 represents the number 13. Therefore, sum = 12 + 13 = 25. Example 2: Input: 4,9,0,5,1 4 / 9 0 / 5 1 Output: 1026 Explanation: The root-to-leaf path 4-9-5 represents the number 495. The root-to-leaf path 4-9-1 represents the number 491. The root-to-leaf path 4-0 、represents the number 40. Therefore, sum = 495 + 491 + 40 = 1026. 给一只二叉树,输出所有从根到叶路径的总和。 O(n) 遍历。 字符串 - 数字 - 求和。 测试用例: 24 ms beat 75% 可做参考的解答如下: class TreeNode(object): # def _init_(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def sumNumbers(self, root): :type root: TreeNode :rtype: int result = if not root: return 0 def helper(root, string): if not root.left and not root.right: result.append(int(string+str(root.val) return if


下列叙述中正确的是( )。

A)线性链表的各元素在存储空间中的位置必须是连续的

B)线性链表的头元素一定存储在其他元素的前面

C)线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面

D)线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


(3)下列叙述中错误的是A. 线性链表的各元素在存储空间中的位置必须是连续的 B.线性链表的头元素一定存储在其元素的前面 C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面 D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
【解析】在线性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。


队列通常采用两种存储结构是(38)。

A.顺序存储结构和链表存储结构

B.散列方式和索引方式

C.链表存储结构和数组

D.线性存储结构和非线性存储结构


正确答案:A
解析:和线性表一样,队列可以有两种存储表示,即顺序存储和链式存储。


下列叙述中正确的是( )。

A.线性链表中的各元素在存储空间中的位置必须是连续的

B.线性链表中的表头元素一定存储在其他元素的前面

C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素—定存储在其他元素的前面

D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的


正确答案:D
解析:性表的链式存储结构中,各数据结点的存储位置不连续,选项A错误。各结点在存储空间中的位置关系与逻辑关系也不一致,选项B和选项C错误。选项D正确。


线性表常采用的两种存储结构是( )。A.散列方法和索引方式B.链表存储结构和数组

线性表常采用的两种存储结构是( )。

A.散列方法和索引方式

B.链表存储结构和数组

C.顺序存储结构和链式存储结构

D.线性存储结构和非线性存储结构


正确答案:C
C)【解析】线性表的存储通常要用两种存储结构:顺序存储结构和链式存储结构。


相关考题:

考题 栈和队列都是线性的数据结构。以下关于栈和队列的叙述中,正确的是( )。A.栈适合采用数组存储,队列适合采用循环单链表存储’B.栈适合采用单链表存储,队列适合采用数组存储C.栈和队列都不允许在元素序列的中间插入和删除元素D.若进入栈的元素序列确定,则从栈中出来的序列也同时确定 正确答案:C解析:栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端称为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIFO表)。队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。

考题 单选题下列不属于物理数据存储方式的是()。A文本文档B数组C链表D数据库正确答案: C解析: 暂无解析

考题 下列叙述中正确的是( )。A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D

考题 下列关于线性链表叙述中,正确的是A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储/顷序也是任意的 正确答案:D解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。

考题 下列叙述中正确的是( )。A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D解析:性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后件关系。

考题 数据结构里,邻接表是图的一种存储结构,是一维数组和链表的结合。正确答案:正确

考题 下列关于线性链表的叙述,正确的是A.线性链表中的各元素在存储空间中的位置必须是连续的B.线性链表中的表头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:D解析:线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可以是连续的,也可能是不连续的。

考题 下列不属于物理数据存储方式的是()。A、文本文档B、数组C、链表D、数据库正确答案:A

考题 下列叙述中正确的是( )。A.线性链表的各元素在存储空间中的位置必须是连续的B.线性链表的头元素一定存储在其他元素的前面C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的 正确答案:DD。【解析】性链表中,各元素在存储空间中的位置是任意的,各元素的顺序也是任意的,依靠指针来实现数据元素的前后关系。

考题 队列通常采用两种存储结构是(34)。A.顺序存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构 正确答案:A解析:队列通常采用两种存储结构是顺序存储和链表存储。