会员卡
稳拿计划
APP下载
注册
登录
首页
在线实习
课程
考点刷题
专栏
改简历
校招信息
基础就业
基础就业
冲刺一线
Java开发
产品经理
前端开发
测试开发
UI/交互
运营
js语言和框架
占笔面试40%
数据结构
占笔面试10%
专业课
占笔面试5%
开放问题
占笔面试5%
数据结构
链表
单向链表
双向链表
字符串
字符串匹配
基本性质
排序
直接插入排序
冒泡排序
简单选择排序
快速排序
栈、队列
栈
队列
二叉树
二叉树遍历
数据结构基础
时间、空间复杂度
栈、队列(共38题)
点击右边按钮,记录本次看题进度~~
精选
全部
01
消息队列的应用场景有哪些?
消息队列的应用场景如下:1.应用解耦比如,用户下单后,订单系统需要通知库存系统,假如库存系统无法访问,则订单减库存将失败,从而导致订单失败。订单系统与库存系统耦合,这个时候如果使用消息队列,可以返回给用户成功,先把消息持久化,等库存系统恢复后,就可以正常消费减去库存了。2.削峰填谷比如,秒杀活动,一般会因为流量过大,从而导致流量暴增,应用挂掉,这个时候加上消息队列,服务器接收到用户的请求后,首先写入消息队列,假如消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。3.日志系统比如,客户端负责将日志采集,然后定时写入消息队列,消息队列再统一将日志数据存储和转发。
来自:栈、队列-队列
02
数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为()。
正确答案是D如果不是循环队列的话,那就应该是r-f,但是如果是循环队列的话,那就算(n+r-f)%n
来自:栈、队列-队列
03
一个栈的初始状态为空。首先将元素5,4,3,2,1 依次入栈,然后退栈一次,再将元素A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为?
正确答案是B答案:1DCBA2345首先将元素5,4,3,2,1入栈,栈顶元素为1,出栈一次就是元素1出栈再将元素A,B,C,D入栈,栈顶元素是D再依次出栈,则为入栈的逆序DCBA2345合起来就是1DCBA2345
来自:栈、队列-栈
04
栈在堆上吗(阿里面试题)
Java栈(Stack)1、Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程,JavaStack为每个线程独享。2、JavaStack主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文(对象的引用),以帧为单位保存线程的运行状态。3、栈空间随着线程的终止而释放。4、StackOverflowError:如果在线程执行的过程中,栈空间不够用,那么JVM就会抛出此异常,这种情况一般是死递归造成的。堆(Heap)1、Java中堆是由所有的线程共享的一块内存区域,堆用来保存各种JAVA对象,比如数组,线程对象等。2、JVM堆一般又可以分为以下三部分:新生代、老年代、永久区:Perm(永久区)Perm代主要保存class(类,包括接口等),method(方法),filed(属性)等元数据,这部分的空间一般不会溢出,除非一次性加载了很多的类,不过在涉及到热部署的应用服务器的时候,有时候会遇到java.lang.OutOfMemoryError:PermGenspace的错误,造成这个错误的很大原因就有可能是每次都重新部署,但是重新部署后,类的class没有被卸载掉,这样就造成了大量的class对象保存在了perm中,这种情况下,一般重新启动应用服务器可以解决问题。Tenured(年老代)Tenured区主要保存生命周期长的对象,一般是一些老的对象,当一些对象在Young复制转移一定的次数以后,对象就会被转移到Tenured区,一般如果系统中用了application级别的缓存,缓存中的对象往往会被转移到这一区间。Young(年轻代)Young区被划分为三部分,Eden(伊甸园)区和两个大小严格相同的Survivor(幸存者)区,其中Survivor区间中,某一时刻只有其中一个是被使用的,另外一个留做垃圾收集时复制对象用。在Young区间变满的时候,minorGC就会将存活的对象移到空闲的Survivor区间中,根据JVM的策略,在经过几次垃圾收集后,任然存活于Survivor的对象将被移动到Tenured区间Appleapp=newApple();app引用存在栈里,引用地址对应对象Apple在堆里。
来自:栈、队列-栈
05
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列是( )。
正确答案是D栈是后进先出。在栈顶的任何输出只有两个可能,要么是下一个入栈结点,要么弹出栈内结点。不可能跳着出栈。‘
来自:栈、队列-栈
06
设有一个用数组Q[1..m]表示的环形队列,约定f为当前队头元素在数组中的位置。r为队尾元素的后一位置(按顺时针方向),若队列非空,则计算队
答案:(m+r-f)modm解析:(1)当尾大于头长度为尾-头当尾小于头比如尾巴在2号位置。而头在4号位置。表的长度为412,而这段长度为总
来自:栈、队列-队列
07
现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问怎么判断循环队列满了
正确答案是D
当队列不为空时,front指向队列的第一个元素,rear指向队列最后一个元素的下一个位置。
当
来自:栈、队列-队列
08
以下哪一个不是栈的基本运算?
正确答案是B栈的特点是后进先出,最下面为栈底,最上面为栈顶。栈的基本运算包括删除栈顶元素、判断栈是否为空以及将栈置为空栈等。所以答案选B。
来自:栈、队列-栈
09
下列说法错误的是 ()
正确答案是BDA正确,虽然链栈也可以实现地址连续,但无法做到依次存放数据元素,因为除了元素域还需要存放指针域。因此满足条件的只有顺序栈。B错
来自:栈、队列-栈
10
向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()
正确答案是D应该先将新元素的next指针指向头结点h的next指针指向的元素,然后用头结点的next的指针,指向新插入的元素s
来自:栈、队列-栈
上一页
1
2
3
4
下一页
记录刷题进度
手机刷题更方便