题目
一个顺序栈[1] s 定义如下class stack : def init ( self , MAX SIZE = 10 ) : self . data = [ None for x in range ( 0 , MAX SIZE ) ] slef . top = -1 入栈数据元素 e 对应的代码是 A. s. top = s. top + 1 s. data [ s. top ] = e B. s. data [ s. top ] = e C. s. top = s. top + 1 s. data [ s. top + 1 ] = e D. s. data [ s. top ] = e s. top = s. top + 1
一个顺序栈[1] s 定义如下
class stack :
def init ( self , MAX SIZE = 10 ) :
self . data = [ None for x in range ( 0 , MAX SIZE ) ]
slef . top = -1
入栈数据元素 e 对应的代码是
A. s. top = s. top + 1
s. data [ s. top ] = e
B. s. data [ s. top ] = e
C. s. top = s. top + 1
s. data [ s. top + 1 ] = e
D. s. data [ s. top ] = e
s. top = s. top + 1
题目解答
答案
选项A正确,先将top指针加1,再将元素赋值给top位置,符合入栈操作,正确。
选项B将元素赋值给已有top位置,错误,会覆盖栈顶元素。
选项C将元素赋值给top+1位置,错误,超出栈范围。
选项D先赋值再变更top,顺序错误,会导致丢失一个元素。
因此,本题的正确答案为:
一个顺序栈 s 定义如下
class stack :
def init ( self , MAX SIZE = 10 ) :
self . data = [ None for x in range ( 0 , MAX SIZE ) ]
slef . top = -1
入栈数据元素 e 对应的代码是
A. s. top = s. top + 1
s. data [ s. top ] = e
解析
步骤 1:理解栈的入栈操作
栈是一种后进先出(LIFO)的数据结构,入栈操作是将一个元素添加到栈顶。在顺序栈中,栈顶由一个指针(top)指向,入栈操作需要先将指针加1,然后将元素赋值给新的栈顶位置。
步骤 2:分析选项
选项A:先将top指针加1,再将元素赋值给top位置,符合入栈操作,正确。
选项B:将元素赋值给已有top位置,错误,会覆盖栈顶元素。
选项C:将元素赋值给top+1位置,错误,超出栈范围。
选项D:先赋值再变更top,顺序错误,会导致丢失一个元素。
步骤 3:选择正确答案
根据以上分析,选项A是正确的入栈操作。
栈是一种后进先出(LIFO)的数据结构,入栈操作是将一个元素添加到栈顶。在顺序栈中,栈顶由一个指针(top)指向,入栈操作需要先将指针加1,然后将元素赋值给新的栈顶位置。
步骤 2:分析选项
选项A:先将top指针加1,再将元素赋值给top位置,符合入栈操作,正确。
选项B:将元素赋值给已有top位置,错误,会覆盖栈顶元素。
选项C:将元素赋值给top+1位置,错误,超出栈范围。
选项D:先赋值再变更top,顺序错误,会导致丢失一个元素。
步骤 3:选择正确答案
根据以上分析,选项A是正确的入栈操作。