栈的应用之二进制(python)

栈的定义

首先定义一个名为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 binString

print(divideBy2(42))



你可能感兴趣的:(data,structure)