1 问题 如何用栈实现字符串的倒转呢? 2 方法 栈和队列是两种常用的数据结构,其中栈是一种只能在同一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。栈顶的当前位置是动态的,可以用一个称为栈顶指针的位置指示器来指示。表的另一端称为栈底。当栈中没有数据元素时称为空栈。栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈,那如何用栈实现字符串的倒转呢? 解决问题的步骤如下: 使用函数和类的方法来实现栈的建立 使用进栈和出栈方法实现字符串的倒转
通过实验、实践等证明提出的方法是有效的,是能够解决开头提出的问题。 代码清单 1 # 写的一个类,里面包含了许多函数 class SqStack: def __init__(self): # 成员变量 self.data = [] # 判断一个栈是否为空 def empty(self): if len(self.data) == 0: return True return False # 进栈 def push(self,e): self.data.append(e) # 出栈 def pop(self): assert not self.empty() return self.data.pop() # 取栈顶元素 def gettop(self): assert not self.empty() return self.data[-1] # 创建对象 stack = SqStack() # 压入字符串,打印出倒转形态 def daozhuan(a): b = str(a) sum = len(b) for i in range(sum): stack.push(b[i]) for i in range(sum): c = stack.pop() print(c,end='') daozhuan('suliang') |
3 结语 针对如何打印出字符串的倒转形态问题,提出用栈的出栈和入栈方法,通过实践,证明该方法是有效的。针对实现字符串的倒转方法还有很多种方法,使用栈的方法可能不是最简单的,但能加强我们对栈的使用,熟悉栈的基本操作。
|