在栈的顺序实现中,栈顶指针top,栈为空条件()。

题目

在栈的顺序实现中,栈顶指针top,栈为空条件()。

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

第1题:

一个采用顺序存储结构的栈,其中TOP为栈顶指针。若以地址高端作栈顶,地址低端作栈底,那么进行进栈操作时,对TOP的操作为( )。 A.TOP:=TOP-1 B.TOP:=TOP+1 C.TOP:=0D.TOP不作任何修改


正确答案:B
当每次进行插入和删除操作时,栈顶指针会相应地进行增1和减1的操作

第2题:

正常情况下,删除非空的顺序存储结构的堆栈的栈顶元素,栈顶指针top的变化是()。

A、top不变

B、top=0

C、top=top+1

D、top=top-1


参考答案:D

第3题:

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


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

第4题:

栈的数组表示中,top为栈顶指针,栈空的条件是()

  • A、top=0
  • B、top=maxSize
  • C、top=-1

正确答案:C

第5题:

栈的数组表示中,top为栈顶指针,栈空的条件是(31)。

A.top=0

B.top=maxSize

C.top=maxSize

D.top=-1


正确答案:A
解析:栈的数组表示中,栈顶指针指向数组的第一个元素时,表示栈为空。

第6题:

将编号为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)。

第7题:

在一个可存放n个数据元素的顺序栈中,假设以高地址端为栈底,以top为栈顶指针,当向栈中压入一个数据元素时,top的变化是()。

A、不变

B、top=n

C、top++

D、top--


正确答案:D

第8题:

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

A.30

B.29

C.20

D.19


正确答案:C

第9题:

当利用大小为N的数组顺序存储一个栈时,假定用栈顶指针top=N+1表示栈空,则向这个栈插入一个元素时,首先应执行______语句修改top指针。

A.top:=top+1

B.top:=top-1

C.top:=0

D.top:=N


正确答案:B
解析:由题可知该题栈底为高地址,因此向栈中插入一数据时指向栈顶的指针减1。

第10题:

在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top为栈顶指针,则当做出栈处理时,top变化为()。

  • A、top不变
  • B、top=0
  • C、top--
  • D、top++

正确答案:C

更多相关问题