
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 结语
针对如何打印出字符串的倒转形态问题,提出用栈的出栈和入栈方法,通过实践,证明该方法是有效的。针对实现字符串的倒转方法还有很多种方法,使用栈的方法可能不是最简单的,但能加强我们对栈的使用,熟悉栈的基本操作。