class SequenceStack: """顺序栈 """ top = None def __init__(self): """初始化顺序栈 """ self.MaxStackSize = int(input("输入栈的大小:")) self.s = [None for x in range(0, self.MaxStackSize)] self.top = -1 def IsEmptyStack(self): """判断栈是否为空 """ if self.top == -1: return True else: return False def PushStack(self, element): """入栈 """ if self.top < self.MaxStackSize - 1: self.top = self.top + 1 self.s[self.top] = element else: print("栈满!") self.StackTraverse() return def PopStack(self): """出栈 """ if self.IsEmptyStack(): print("栈空!") return else: iTop = self.top self.top = self.top - 1 return self.s[iTop] def StackTraverse(self): """遍历顺序栈 """ if self.IsEmptyStack(): print("栈空!") return else: print("当前栈底至栈顶数据分别为:") for i in range(0, self.top + 1): print(self.s[i], end=' ') print("") def GetTopStack(self): """获取顺序栈顶数据 """ if self.IsEmptyStack(): print("栈空!") return else: return self.s[self.top] def GetStackLength(self): """获取当前栈长度 """ if self.IsEmptyStack(): print("栈空!") return else: return self.top + 1 def CreateStackByInput(self): """创建顺序栈 """ data = input("请输入数据,按#结束:") while data != '#': self.PushStack(data) data = input("请输入数据,按#结束:") self.StackTraverse() ss = SequenceStack() ss.CreateStackByInput() element = input("输入入栈数据:") ss.PushStack(element=element) print("当前栈长度为:", ss.GetStackLength()) print("当前栈顶数据为:", ss.GetTopStack()) print("出栈数据为:", ss.PopStack()) class SequenceStack: """顺序栈 """ t
时间: 2023-06-06 08:06:35 浏览: 163
照顺序入栈,输入exit结束:") while data != 'exit': self.PushStack(data) data = input("请输入数据,按照顺序入栈,输入exit结束:")
该类为一个顺序栈,通过输入栈的大小和数据,创建一个新的顺序栈。通过IsEmptyStack可以判断该栈是否为空,通过PushStack可以往栈中添加元素,当栈满时会提示栈满。通过PopStack可以弹出栈顶元素,当栈为空时会提示栈空。通过StackTraverse可以遍历栈中所有元素,当栈为空时也会提示栈空。通过GetTopStack可以获取栈顶元素,当栈为空时会提示栈空。通过GetStackLength可以获取当前栈的长度。该类还提供了一个方法CreateStackByInput,用于通过输入数据创建一个新的顺序栈。
相关问题
注释class SequenceStack: """顺序栈 """ top = None def __init__(self): """初始化顺序栈 """ self.MaxStackSize = int(input("输入栈的大小:")) self.s = [None for x in range(0, self.MaxStackSize)] self.top = -1 def IsEmptyStack(self): """判断栈是否为空 """ if self.top == -1: return True else: return False def PushStack(self, element): """入栈 """ if self.top < self.MaxStackSize - 1: self.top = self.top + 1 self.s[self.top] = element else: print("栈满!") self.StackTraverse() return def PopStack(self): """出栈 """ if self.IsEmptyStack(): print("栈空!") return else: iTop = self.top self.top = self.top - 1 return self.s[iTop] def StackTraverse(self): """遍历顺序栈 """ if self.IsEmptyStack(): print("栈空!") return else: print("当前栈底至栈顶数据分别为:") for i in range(0, self.top + 1): print(self.s[i], end=' ') print("") def GetTopStack(self): """获取顺序栈顶数据 """ if self.IsEmptyStack(): print("栈空!") return else: return self.s[self.top] def GetStackLength(self): """获取当前栈长度 """ if self.IsEmptyStack(): print("栈空!") return else: return self.top + 1 def CreateStackByInput(self): """创建顺序栈 """ data = input("请输入数据,按#结束:") while data != '#': self.PushStack(data) data = input("请输入数据,按#结束:") self.StackTraverse() ss = SequenceStack() ss.CreateStackByInput() element = input("输入入栈数据:") ss.PushStack(element=element) print("当前栈长度为:", ss.GetStackLength()) print("当前栈顶数据为:", ss.GetTopStack()) print("出栈数据为:", ss.PopStack()) class SequenceStack: """顺序栈 """ t
照顺序栈入栈顺序输入,以空格分隔:") dataList = data.split(" ") for i in range(0, len(dataList)): self.PushStack(dataList[i])
这是一个顺序栈的定义,包括初始化、判断栈空、入栈、出栈、遍历栈、获取栈顶元素、获取栈长度和创建栈等方法。其中,初始化方法会让用户输入栈的大小,入栈方法检查栈是否已满,若已满就输出提示信息。创建栈方法让用户输入一串数据,按顺序入栈。
阅读全文