因为SP所指栈顶为“实”栈顶,所以在入栈和出栈操作时都要先修改堆

题目

因为SP所指栈顶为“实”栈顶,所以在入栈和出栈操作时都要先修改堆栈指针SP,再执行入栈、出栈操作。

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

A.入栈运算只需将新元素插到栈顶指针指向的位置

B.出栈运算只需将栈顶元素赋给一个指定变量

C.出栈运算与读栈顶元素是相同的操作

D.读栈顶元素不删除栈顶元素


正确答案:D
解析:入栈运算需先将栈顶指针加1,然后将新元素插到栈顶指针指向的位置,选项A是错误的。出栈运算需将栈顶元素赋给一个指定变量,然后将栈顶指针减1,选项B是错误的。出栈运算与读栈顶元素不同之处在于读栈顶元素不删除栈顶元素。答案是选项D。

第2题:

有4个元素A、B、C、D依次入栈,入栈过程中允许栈顶元素出栈,假设某一时刻栈的状态是C(栈顶)、B、 A(栈底),则不可能的出栈顺序是( )。

A. D、C、B、A

B. C、B、D、A

C. C、A、D、B

D. C、D、B、A


正确答案:C
栈的特点是先进后出,所以后入栈的最先出栈。在栈的状态是C(栈顶)、B,A(栈底)时,D未入栈,栈顶元素可以出栈,但A不可能比B先出栈,所以C选项错误。

第3题:

执行入栈指令PUSH时,栈顶指针SP为:()。

A.SP←SP+1

B.SP←SP-1

C.SP←SP+2

D.SP←SP-2


正确答案:A

第4题:

用链表作为栈的存储结构时,若要入栈操作成功,则(38)。

A.必须先判断是否栈满

B.必须先判断是否栈空

C.必须先判断栈顶元素的类型

D.必须成功申请到入栈元素所需结点


正确答案:D
本题考查数据结构基础知识。栈的修改要求是仅在表尾进行插入和删防操作,元素间的关系仍是线性的。对于删除操作(即出栈),无论在何种存储方式下实现该运算,栈不为空才能操作成功。对于插入操作(即入栈),要求为新加入的元素准备好存储空间,在链式存储方式下,不存在栈满的情形,只需判断是否为新元素成功申请到需要的结点。

第5题:

a、b、c、d、e、f依次进栈、进栈、出栈、进栈、进栈、出栈、进栈的操作,则操作完后,栈S的栈顶元素为()。

A.a

B.b

C.d


答案:C

第6题:

栈的常用操作有()

A、入栈

B、出栈

C、取栈顶元素

D、清空栈


参考答案:ABCD

第7题:

a、b、c、d、e、f依次进栈、进栈、出栈、进栈、进栈、出栈的操作,则操作完后,栈S的栈顶元素为()。

A.a

B.b

C.c


答案:C

第8题:

执行出栈指令POP时,栈顶指针SP为:()。

A.SP←SP–1

B.SP←SP+1

C.SP←SP–2

D.SP←SP+2


正确答案:A

第9题:

设有初始为空的栈S,对于入栈序列a b c d e f, 经由进栈、进栈、出栈、进栈、进栈、出栈的操作后,栈顶和栈底元素分别为( )。

A.c和bB.b和aC.c和aD.d 和b


正确答案:C

第10题:

用链表作为栈的存储结构时,若要入栈操作成功,则( )。

A.必须先判断是否栈满
B.必须先判断是否栈空
C.必须先判断栈顶元素的类型
D.必须成功申请到入栈元素所需结点

答案:D
解析:
本题考查数据结构基础知识。
栈的修改要求是仅在表尾进行插入和删除操作,元素间的关系仍是线性的。对于删除操作(即出栈),无论在何种存储方式下实现该运算,栈不为空才能操作成功。对于插入操作(即入栈),要求为新加入的元素准备好存储空间,在链式存储方式下,不存在栈满的情形,只需判断是否为新元素成功申请到需要的结点。