将数字各位存入上述链表类设计的链表中
时间: 2023-07-10 14:18:55 浏览: 79
可以编写一个函数,将一个整数的各个数字存储在链表中,每个数字存储为一个节点。下面是一个示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义链表节点类
class ListNode {
public:
int val;
ListNode* next;
ListNode(int val) {
this->val = val;
this->next = NULL;
}
};
// 定义链表类
class LinkedList {
private:
ListNode* head;
public:
LinkedList() {
head = NULL;
}
// 在链表末尾插入节点
void append(int val) {
ListNode* node = new ListNode(val);
if (head == NULL) {
head = node;
} else {
ListNode* p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = node;
}
}
// 在链表头部插入节点
void prepend(int val) {
ListNode* node = new ListNode(val);
node->next = head;
head = node;
}
// 删除链表中第一个值为val的节点
void remove(int val) {
if (head == NULL) {
return;
}
if (head->val == val) {
ListNode* p = head;
head = head->next;
delete p;
return;
}
ListNode* p = head->next;
ListNode* prev = head;
while (p != NULL) {
if (p->val == val) {
prev->next = p->next;
delete p;
return;
}
prev = p;
p = p->next;
}
}
// 打印链表
void print() {
ListNode* p = head;
while (p != NULL) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
};
// 将一个整数的各个数字存储在链表中
LinkedList intToLinkedList(int num) {
LinkedList list;
if (num == 0) {
list.append(0);
return list;
}
while (num > 0) {
int digit = num % 10;
list.prepend(digit);
num /= 10;
}
return list;
}
int main() {
LinkedList list = intToLinkedList(12345);
list.print();
return 0;
}
```
在`main`函数中,我们调用`intToLinkedList`函数将数字12345存储在链表中,并打印出链表中的各个节点的值:1 2 3 4 5。
阅读全文