链栈实现数制转换算法介绍
时间: 2023-12-22 13:30:06 浏览: 128
链栈实现数制转换算法的思想是利用栈的先进后出的特性,将待转化的数从低位到高位依次入栈,然后再依次出栈,得到转化后的结果。具体步骤如下:
1. 创建一个空栈。
2. 将待转化的数从低位到高位依次取余,将余数入栈,直到待转化的数为0。
3. 依次出栈,得到转化后的数。
下面是一个使用链栈实现十进制转二进制的示例代码:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Stack:
def __init__(self):
self.top = None
def is_empty(self):
return self.top is None
def push(self, data):
new_node = Node(data)
new_node.next = self.top
self.top = new_node
def pop(self):
if self.is_empty():
return None
data = self.top.data
self.top = self.top.next
return data
def decimal_to_binary(decimal):
stack = Stack()
while decimal > 0:
remainder = decimal % 2
stack.push(remainder)
decimal = decimal // 2
binary = ""
while not stack.is_empty():
binary += str(stack.pop())
return binary
decimal = 10
binary = decimal_to_binary(decimal)
print(f"The binary representation of {decimal} is {binary}") # 输出:The binary representation of 10 is 1010
```
阅读全文