利用栈实现十进制转换为二进制
时间: 2024-04-30 19:19:42 浏览: 96
可以按照以下步骤利用栈实现十进制转换为二进制:
1. 将十进制数不断除以2,将余数入栈,直到商为0停止;
2. 依次从栈中取出余数,组成二进制数。
以下是实现的示例代码(假设使用链式栈):
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Stack:
def __init__(self):
self.top = None
def push(self, data):
node = Node(data)
node.next = self.top
self.top = node
def pop(self):
if self.top is None:
return None
data = self.top.data
self.top = self.top.next
return data
def is_empty(self):
return self.top is None
def decimal_to_binary(decimal):
stack = Stack()
while decimal > 0:
remainder = decimal % 2
stack.push(remainder)
decimal //= 2
binary = ''
while not stack.is_empty():
binary += str(stack.pop())
return binary
```
我们可以调用 `decimal_to_binary` 函数来进行测试:
```python
print(decimal_to_binary(10)) # 输出 1010
print(decimal_to_binary(27)) # 输出 11011
```
阅读全文