对于顺序栈和链栈,( )不是两者共有的运算特征。A.元素后进先出B.入栈时需要判断是否栈满C.出栈时需要判断是否栈空D.每次只能访问栈顶元素
对于顺序栈和链栈,( )不是两者共有的运算特征。
A.元素后进先出
B.入栈时需要判断是否栈满
C.出栈时需要判断是否栈空
D.每次只能访问栈顶元素
B.入栈时需要判断是否栈满
C.出栈时需要判断是否栈空
D.每次只能访问栈顶元素
参考解析
解析:本题考查数据结构基础知识。
栈的顺序存储(也称为顺序栈)是指用一组地址连续的存储单元依次存储白栈顶到栈底的数据元素,同时附设指针top指示栈顶元素的位置。在顺序存储方式下,需要预先定义或申请栈的存储空间,也就是说栈空间的容量是有限的。因此在顺序栈中,当一个元素入栈时,需要判断是否栈满(即栈空间中是否有空闲单元),若栈满,则元素入栈会发生上溢现象。
用链表作为存储结构的栈称为链栈,链表中的结点根据需要动态申请,不存在栈满的情况。由于栈中元素的插入和删除仅在栈顶一端进行,因此不必另外设置头指针,链表的头指针就是栈顶指针。
无论栈采用哪种存储结构,进行出栈操作时都要判断是否栈空,栈为空时无法完成出栈操作。
栈的顺序存储(也称为顺序栈)是指用一组地址连续的存储单元依次存储白栈顶到栈底的数据元素,同时附设指针top指示栈顶元素的位置。在顺序存储方式下,需要预先定义或申请栈的存储空间,也就是说栈空间的容量是有限的。因此在顺序栈中,当一个元素入栈时,需要判断是否栈满(即栈空间中是否有空闲单元),若栈满,则元素入栈会发生上溢现象。
用链表作为存储结构的栈称为链栈,链表中的结点根据需要动态申请,不存在栈满的情况。由于栈中元素的插入和删除仅在栈顶一端进行,因此不必另外设置头指针,链表的头指针就是栈顶指针。
无论栈采用哪种存储结构,进行出栈操作时都要判断是否栈空,栈为空时无法完成出栈操作。
相关考题:
假定栈用顺序的方式存储,栈类型stack定义如下:TYPE stack=RECORDA: ARRAY[1..M0OF datatype;t:0..M0;END;下面是栈的一种基本运算的实现:PROCEDURE xxxx(VAR s:stack)BEGINIF s.t=0THEN print('underflow')ELSE s.t:=s.t-1;END;请问这是栈的哪种基本运算?( )。A) 栈的推入B) 栈的弹出C) 读栈顶元素D) 将栈置为空栈A.B.C.D.
下列叙述中错误的是()。A.不管是顺序栈还是带链的栈,在操作过程中其栈底指针均是固定不变的。B.带链栈的栈底指针在操作过程中是有可能改变的。C.不管是顺序栈还是带链的栈,在操作过程中其栈顶指针均是动态变化的。D.顺序栈的栈底指针在操作过程中是固定不变的。
36、对于一个栈做进栈运算时,应先判断栈是否为(),做出栈运算时,应先判断别栈是否(),当栈中元素为m时,做栈运算时发生上溢,则说明栈的可用最大容量为()。为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片连续的内存空间时,应将两栈的()分别设在这片内存空间的两端,这样只有当()时才发生上溢。
填空题36、对于一个栈做进栈运算时,应先判断栈是否为(),做出栈运算时,应先判断别栈是否(),当栈中元素为m时,做栈运算时发生上溢,则说明栈的可用最大容量为()。为了增加内存空间的利用率和减少发生上溢的可能性,由两个栈共享一片连续的内存空间时,应将两栈的()分别设在这片内存空间的两端,这样只有当()时才发生上溢。
单选题在下面栈的基本运算中,不是加工型运算的是()A初始化B进栈C退栈D判栈空