以不带头结点的单链表存储栈,设计初始化栈、判断栈是否为空、进栈和出栈等相应的算法。 要求:(1)使用类C语言描述算法; (2)添加必要的注释。

以不带头结点的单链表存储栈,设计初始化栈、判断栈是否为空、进栈和出栈等相应的算法。 要求:(1)使用类C语言描述算法; (2)添加必要的注释。


参考答案和解析
C

相关考题:

设输入序列为1、2、3、4、5,依次执行进栈、进栈、进栈、出栈、进栈、进栈、出栈、出栈,则栈顶栈底分别是______。A.5和4B.4和3C.3和2D.2和1

将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下:Typedef struct{int top[2],bot[2]; //栈顶和栈底指针SElemType *V; //栈数组int m; //栈最大可容纳元素个数}DblStack

设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。算法应对异常情况(入栈满等)给出相应的信息。

如果以链表为栈的存储结构,则退栈操作是______。A.必须判别栈是否满B.必须判别栈是否空C.判别栈元素的类型D.刘栈不作任何判别

如果以链表为栈的存储结构,则出栈操作是______。A.必须判别栈是否为满B.必须判别栈是否为空C.判别栈元素的类型D.对栈不作任何判别

如果以链表为栈的存储结构,则出栈操作是______。A.必须判别栈是否满B.必须判别栈是否空C.判别栈元素的类型D.对栈不作任何判别

如果以链表作为栈的存储结构,则出栈操作时()。A.必须判别栈是否满B.必须判别栈是否为空C.必须判别栈元素类型D.可不做任何判断

如果以链表作为栈的存储结构,则入栈操作时()。A.必须判别栈是否满B.必须判别栈是否为空C.必须判别栈元素类型D.可不做任何判断

如果以链表作为栈的存储结构,则退栈操作时( )。A.必须判别栈是否满B.必须判别栈是否空C.判别栈元素的类型D.对栈不作任何的判别

如果以链表作为栈的存储结构,则退栈操作时(55)。A.必须判别栈是否满B.对栈不作任何判别C.判别栈元素的类型D.必须判别栈是否空

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

若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。A.采用不含头结点的单链表且栈顶元素放在表尾结点B.采用不含头结点的单链表且栈顶元素放在表头结点C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点D.采用含头结点的双向链表且栈顶元素放在表尾结点

用链表作为栈的存储结构时,若要入栈操作成功,则(38)。A.必须先判断是否栈满B.必须先判断是否栈空C.必须先判断栈顶元素的类型D.必须成功申请到入栈元素所需结点

用链表作为栈的存储结构时,若要入栈操作成功,则( )。A.必须先判断是否栈满B.必须先判断是否栈空C.必须先判断栈顶元素的类型D.必须成功申请到入栈元素所需结点

如果以链表作为栈的存储结构,则退链栈操作时()A.必须判断链栈是否满B.判断链栈元素的类型C.必须判断链栈是否空D.对链栈不做任何判断

栈的特点是后进先出,若用单链表作为栈的存储结构,并用头指针作为栈顶指针,则( )。A.入栈和出栈操作都不需要遍历链表B.入栈和出栈操作都需要遍历链表C.入栈操作需要遍历链表而出栈操作不需要D.入栈操作不需要遍历链表而出栈操作需要

设有初始为空的栈S,对于入栈序列a、b、c,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),不能得到的序列为( ).A.abcB.acbC.cabD.Cba

如果以链表作为栈的存储结构,则出栈操作时()A、必须判别栈是否满B、必须判别栈是否空C、必须判别栈元素类型D、队栈可不做任何判别

以链表作为栈的存储结构,出栈操作必须判别栈空的情况。

括号匹配算法中,扫描到左括号要进栈,扫描到右括号要()。A、出栈B、进栈C、不操作D、以上都不对

如果以链表作为栈的存储结构,则退栈操作时()A、必须判别栈是否满B、判别栈元素的类型C、必须判别栈是否空D、对栈不作任何判别

设用链表作为栈的存储结构则退栈操作()A、必须判别栈是否为满B、必须判别栈是否为空C、判别栈元素的类型D、对栈不作任何判别

设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题: (1)若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何?(这里Push(i)表示i进栈,Pop()表示出栈) (2)能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。 (3)请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。

单选题今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为()AfBcCaDb

判断题以链表作为栈的存储结构,出栈操作必须判别栈空的情况。A对B错

单选题括号匹配算法中,扫描到左括号要进栈,扫描到右括号要()。A出栈B进栈C不操作D以上都不对

单选题如果以链表作为栈的存储结构,则退栈操作时()A必须判别栈是否满B判别栈元素的类型C必须判别栈是否空D对栈不作任何判别

单选题如果以链表作为栈的存储结构,则出栈操作时()A必须判别栈是否满B必须判别栈是否空C必须判别栈元素类型D队栈可不做任何判别