python数据结构:栈
1.设计思想
利用栈的思想将一个非负的的十进制数转换为一个二进制数
2.代码实现
class SequenceStack(object):
# 初始化栈函数
def __init__(self):
self.Max = 10000
self.s = [None for x in range(0, self.Max)]
self.top = -1
# 进栈函数
def PushStack(self, data):
if self.top < self.Max - 1:
self.top = self.top + 1
self.s[self.top] = data
else:
print('栈满')
return
#遍历栈内元素函数
def StackTraverse(self):
for i in range(0,self.top+1):
print(self.s[i],end='')
#将十进制转换成二进制
def Transition(self):
while True:
data = input('请输入一个非负整数:')
if int(data)>=0:
list1 = []
number = int(data)
if number == 0:
print('二进制形式为:0')
else:
while number != 0:
integer = number % 2
number = number // 2
list1.append(integer)
#将生成的二进制数压入栈中
i = len(list1) - 1
er = SequenceStack()
while i < (len(list1)) and i >= 0:
er.PushStack(list1[i])
i = i - 1
print('二进制形式为:', end='')
er.StackTraverse()
break
else:
print('输入错误,请输入非负整数。')
continue
er=SequenceStack()
er.Transition()