将十进制整数n转换成对应的二进制数,要求建立链式堆栈。
时间: 2024-05-10 10:20:36 浏览: 39
利用栈把10进制数转化为2进制数
以下是Python实现:
```python
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
if not self.is_empty():
return self.items.pop()
def peek(self):
if not self.is_empty():
return self.items[-1]
def decimal_to_binary(n):
stack = Stack()
while n > 0:
remainder = n % 2
stack.push(remainder)
n //= 2
binary = ""
while not stack.is_empty():
binary += str(stack.pop())
return binary
```
首先定义一个堆栈类Stack,其中包含常用的入栈、出栈、获取栈顶元素和判断栈是否为空的方法。然后定义一个名为decimal_to_binary的函数,该函数接受一个十进制整数n作为参数,返回对应的二进制数。
在函数中,我们首先创建一个空堆栈stack。然后不断将n除以2取余数,并将余数入栈,直到n变为0。接着,我们从堆栈中依次弹出元素,将它们拼接成一个二进制数,并返回该数。
阅读全文