将十进制整数n转换成对应的二进制数,要求建立链式堆栈。
时间: 2023-06-10 07:04:35 浏览: 196
好的,我明白了您的问题。下面是实现该功能的 Python 代码:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def is_empty(self):
return self.items == []
def peek(self):
return self.items[-1]
def decimal_to_binary(n):
s = Stack()
result = ""
while n > 0:
remainder = n % 2
s.push(remainder)
n //= 2
while not s.is_empty():
result += str(s.pop())
return result
n = int(input("请输入一个十进制整数:"))
print(decimal_to_binary(n))
```
以上代码会先定义一个栈类 `Stack`,然后再定义一个函数 `decimal_to_binary`,用于将输入的十进制整数转换成对应的二进制数。在函数中,我们首先创建一个空栈 `s`,然后进入一个 while 循环,将给定的数 `n` 不断取模并压入栈中,直到 `n` 为 0。接着我们再通过一个 while 循环,不断取出栈中元素并拼接成一个二进制数,最后返回得到的结果。
阅读全文