假设一顺序栈定义如下:#defineTRUE1#defineFALSE0#defineStack_Size50#defineStackElementTypechar/*顺序栈*/typedefstruct{StackElementTypeelem[Stack_Size];/*用来存放栈中元素的一维数组*/inttop;/*用来存放栈顶元素的下标,top为-1表示空栈*/}SeqStack;请对下面的入栈操作Push的算法实现。
举一反三
- 顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为
- 当我们改造数组实现栈的顺序存储时,通常把数组中下标为0的一端作为栈底,同时设定用变量top指示栈顶元素在数组中的位置(栈顶元素所在的下标),若栈空,设定top=-1。
- 设top表示栈顶元素所在的下标,顺序栈的栈空条件是(),栈满条件是() A: top=0 B: top=-1 C: top=StackSize D: top=StackSize-1
- 关于顺序栈,下列说法错误的是 ( )。 A: 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,这种形式的栈也称为顺序栈 B: 栈顶指针top=0时为空栈 C: 当栈顶指针top等于数组的最大下标值时则栈满 D: 元素进栈时栈顶指针top减1
- 假设用-个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有的元素个数为( )。 A: 50 B: 19 C: 1 D: 20