今天开始学习problem solving algorithm and datastrurcture by
python,麻省理工的教材,OCW 6.006。一方面补充一下算法知识,复习语法。
def
__init__(self):
self.items=[]
def __str__(self):
return str(self.items)
def
push(self,item):
self.items.append(item)
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
def isEmpty(self):
return self.items==[]
def pop(self):
return self.items.pop()
remstack = Stack()
while decNumber >
0:
rem = decNumber % 2
remstack.push(rem)
decNumber = decNumber // 2
binString = ""
while not
remstack.isEmpty():
binString = binString +
str(remstack.pop())
return binString
栈的简单实现
class Stack:
def divideBy2(decNumber):
print(divideBy2(2))
上面的类,很简单即用列表的方法模拟栈。其中__str__是自己加上的,我觉得列表可以打印出元素,栈也应该可以的,所以将__str__方法转成输出列表元素。
原教材中认为列表是表头是在前面的,与栈不同,所以对POP方法强制成0元素。按此实现方法则不必,列表是黑箱中的,只有push和pop作对位置对应即可。
后面的应用,是使用栈作二进制转换的例子。
本文介绍了使用Python实现栈的基本概念和简单应用,通过实例展示了如何利用栈进行二进制数转换。从算法知识的补充到语法复习,旨在提升编程技能并加深对数据结构的理解。
1048

被折叠的 条评论
为什么被折叠?



