在一个顺序栈中,若栈顶指针等于(),则为空栈;若栈顶指针等于()

题目

在一个顺序栈中,若栈顶指针等于(),则为空栈;若栈顶指针等于(),则为满栈。

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

第1题:

设栈的顺序存储空间为S(0:49),栈底指针bottom=49,栈顶指针top=30(指向栈顶元素)。则栈中的元素个数为()。

A.30

B.29

C.20

D.19


正确答案:C

第2题:

将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下:

Typedef struct

{int top[2],bot[2]; //栈顶和栈底指针

SElemType *V; //栈数组

int m; //栈最大可容纳元素个数

}DblStack


参考答案:
  两栈共享向量空间,将两栈栈底设在向量两端,初始时,左栈顶指针为-1,右栈顶为m。两栈顶指针相邻时为栈满。两栈顶相向、迎面增长,栈顶指针指向栈顶元素。
  [算法描述]
  (1) 栈初始化
  int Init()
  {S.top[0]=-1;
  S.top[1]=m;
  return 1; //初始化成功
  }
  (2) 入栈操作:
  int push(stk S ,int i,int x)
  ∥i为栈号,i=0表示左栈,i=1为右栈,x是入栈元素。入栈成功返回1,失败返回0
  {if(i<0||i>1){ cout<<“栈号输入不对”<  if(S.top[1]-S.top[0]==1) {cout<<“栈已满”<  switch(i)
  {case 0: S.V[++S.top[0]]=x; return(1); break;
  case 1: S.V[--S.top[1]]=x; return(1);
  }
  }∥push
  (3) 退栈操作
  ElemType pop(stk S,int i)
  ∥退栈。i代表栈号,i=0时为左栈,i=1时为右栈。退栈成功时返回退栈元素
  ∥否则返回-1
  {if(i<0 || i>1){cout<<“栈号输入错误”<  switch(i)
  {case 0: if(S.top[0]==-1) {cout<<“栈空”<  else return(S.V[S.top[0]--]);
  case 1: if(S.top[1]==m { cout<<“栈空”<  else return(S.V[S.top[1]++]);
  }∥switch
  }∥算法结束
  (4) 判断栈空
  int Empty();
  {return (S.top[0]==-1 && S.top[1]==m);
  }
  [算法讨论]
  请注意算法中两栈入栈和退栈时的栈顶指针的计算。左栈是通常意义下的栈,而右栈入栈操作时,其栈顶指针左移(减1),退栈时,栈顶指针右移(加1)。

第3题:

在栈顶指针为HS的链栈中,判定栈空的条件是_____。


参考答案:HS->next==null

第4题:

设有一个空栈,栈顶指针为1000H,现有输入序列为12345,push,push,pop,push,pop,push,push后,输出序列为(),栈顶指针是()。


正确答案:2,3;1003H

第5题:

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

A.在栈中,棱中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.上述三种说法都不对


正确答案:C
栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,男一端称为栈底。

第6题:

下列叙述中错误的是()。

A.在带链队列中,队头指针和队尾指针都是在动态变化的

B.在带链栈中,栈顶指针和栈底指针都是在动态变化的

C.在带链栈中,栈顶指针是在动态变化的,但栈底指针是不变的

D.以上说法均不对


正确答案:B

第7题:

下列叙述中正确的是

A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.上述三种说法都不对


正确答案:C
解析:栈是限定在一端进行插入与删除的线性表。通常用指针top来表示栈顶的位置,用指针bottom指向栈底,在栈中,栈是按照先进后出的原则组织数据的,栈顶指针动态反映了栈中元素的变化情况。

第8题:

在栈的应用中,栈顶指针总是指向真正的栈顶。()

此题为判断题(对,错)。


参考答案:错误

第9题:

以下关于栈的叙述错误的是(  )。


A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化

B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化

C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化

D.上述三种说法都不对

答案:A,B,D
解析:
栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。当有新元素进栈时,栈顶指针向上移动;当有元素出栈时,栈项指针向下移动。在栈中栈底指针不变,栈中元素随栈顶指针的变化而动态变化。可见,C项表述正确。故选ABD。

第10题:

在一个链栈中,若栈顶指针等于NULL,则为();在一个链队中,若队首指针与队尾指针的值相同,则表示该队列为()或该队列为()。


正确答案:栈空;空队;队列只有一个元素

更多相关问题