如何翻轉棧的所有元素

2021-09-19 12:02:53 字數 1434 閱讀 1497

class mystack():

#模擬棧

def __init__(self):

self.items =

#判斷棧是否為空

def isempty(self):

return len(self.items)==0

#返回棧的大小

def size(self):

return len(self.items)

#返回棧頂元素

def top(self):

if not self.isempty():

return self.items[len(self.items)-1]

else:

return none

#彈棧def pop(self):

if len(self.items)>0:

return self.items.pop()

else:

print("棧已經為空")

return none

#壓棧def push(self,item):

#第一步:棧底元素移動到棧頂

#第二步:遞迴呼叫除棧頂元素之外的子棧

'''方法功能:棧底元素移動到棧頂

'''def movebottomtotop(s):

if s.isempty():

return

#記錄棧頂元素

top1 = s.top()

s.pop()

#生成子棧

if not s.isempty():

#遞迴處理不包含棧頂的子棧

movebottomtotop(s)

#記錄子棧的棧頂元素

top2 = s.top()

s.pop()

#交換棧頂元素與子棧棧頂元素

s.push(top1)

s.push(top2)

else:

s.push(top1)

def reverse_s(s):

if s.isempty():

return

#把棧底元素移動到棧頂

movebottomtotop(s)

top = s.top()

s.pop()

#遞迴處理子棧

reverse_s(s)

s.push(top)

if __name__ =="__main__":

s = mystack()

array = input().split()

for i in array:

s.push(i)

reverse_s(s)

print ("翻轉後出棧順序為:")

while not s.isempty():

print( s.top())

s.pop()

Java如何遍歷Map的所有的元素

jdk1.4中 map map new hashmap iterator it map.entryset iterator while it.hasnext jdk1.5中,應用新特性for each迴圈 map m new hashmap for object o map.keyset 返回的 s...

Java如何遍歷Map的所有的元素

jdk1.4中 map map new hashmap iterator it map.entryset iterator while it.hasnext jdk1.5中,應用新特性for each迴圈 map m new hashmap for object o map.keyset 返回的 s...

Java如何遍歷Map的所有的元素

jdk1.4中 map map new hashmap iterator it map.entryset iterator while it.hasnext jdk1.5中,應用新特性for each迴圈 map m new hashmap for object o map.keyset 返回的 s...