栈的应用之二进制(python)

来源:互联网 发布:mmd的动作数据 编辑:程序博客网 时间:2024/05/16 23:58

栈的定义

首先定义一个名为Stack的栈的类
初始化一个属性items为空列表,然后定义函数,进行一个动作或者是返回一个值,自行理解,不喜勿喷
class Stack():    def __init__(self):#添加属性        self.items = []    def isEmpty(self):#定义方法,直接调用        return self.items == []    def push(self, item):#是一个方法,返回的是方法,不能赋值        self.items.insert(0, item)    def pop(self):        return self.items.pop(0)    def peek(self):        return self.items[0]    def size(self):        return len(self.items)
由于十进制转化二进制进行的操作是取对2的余数,然后所有的余数倒序
def divideBy2(decNumber):    remstack = stack.Stack()#余数的倒序为二进制    while decNumber > 0:        rem = decNumber % 2#求余数        remstack.push(rem)        decNumber = decNumber//2#更新除数    binString = ""    while not remstack.isEmpty():#出栈        binString = binString + str(remstack.pop())    return binStringprint(divideBy2(42))



原创粉丝点击