十进制转二进制单链表c++
时间: 2024-06-16 07:04:12 浏览: 108
D_2_B_十进制转二进制_
在C++中,可以使用单链表来实现十进制转二进制的功能。下面是一个简单的示例代码:
```cpp
#include <iostream>
// 定义链表节点结构
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
// 十进制转二进制函数
ListNode* decimalToBinary(int num) {
if (num == 0) {
return new ListNode(0);
}
ListNode* head = nullptr;
ListNode* curr = nullptr;
while (num > 0) {
int remainder = num % 2;
num /= 2;
if (head == nullptr) {
head = new ListNode(remainder);
curr = head;
} else {
curr->next = new ListNode(remainder);
curr = curr->next;
}
}
return head;
}
// 打印链表
void printList(ListNode* head) {
ListNode* curr = head;
while (curr != nullptr) {
std::cout << curr->val;
curr = curr->next;
}
std::cout << std::endl;
}
int main() {
int decimalNum = 10; // 十进制数
ListNode* binaryList = decimalToBinary(decimalNum); // 十进制转二进制
printList(binaryList); // 打印二进制链表
return 0;
}
```
上述代码中,我们定义了一个`ListNode`结构来表示链表节点,其中`val`表示节点的值,`next`指向下一个节点。然后,我们实现了一个`decimalToBinary`函数来将十进制数转换为二进制链表。最后,我们通过`printList`函数打印出转换后的二进制链表。
阅读全文