Python代码疑问求助~~
class Stack:def __init__(self,X=[]):
self.stack = []
for x in X:
self.push(x)
def isEmpty(self):
return not self.stack
def push(self,obj):
self.stack.append(obj)
def pop(self):
if not self.stack:
print('栈为空!')
else:
self.stack.pop()
def top(self):
if not self.stack:
print('栈为空!')
else:
print(self.stack[-1])
def bottom(self):
if not self.stack:
print('栈为空!')
else:
print(self.stack)
提问:以上代码中,标红的两行有什么用,我把它删除了也是一样运行的啊~~
能运行,不代表代码能正常工作。首先你要搞懂代码是干嘛用的。
这段代码明显就是栈的应用,就是让你对栈有更深的了解。
for x in X:
self.push(x) #函数用来初始化栈 没有这段代码你的栈就是空的
有:
>>> s = '123456'
>>> b = Stack(s)
>>> b.bottom()
1
>>> b.top()
6
没有:
>>> s = '123456'
>>> b = Stack(s)
>>> b.bottom()
栈为空!
>>> b.top()
栈为空!
如果不写标红的代码,参数 X 就没有用了。代码的原意是如果有 X 参数 则先向栈推进 X 里的元素。
页:
[1]