以下是一个示例的C语言代码,用于创建两个链表来存放非负整数(字符形式):
#include <stdio.h>
#include <stdlib.h>
// 链表结构定义
typedef struct Node {
char digit;
struct Node* next;
} Node;
// 创建链表
Node* createLinkedList(const char* num) {
Node *head = NULL, *current = NULL;
// 处理空指针和空字符串情况
if (num == NULL || num[0] == '\0') {
return head;
}
// 逐位创建节点,并连接成链表
for (int i = 0; num[i] != '\0'; i++) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->digit = num[i];
newNode->next = NULL;
if (head == NULL) {
head = current = newNode;
} else {
current->next = newNode;
current = newNode;
}
}
return head;
}
// 打印链表
void printLinkedList(Node* head) {
if (head == NULL) {
printf("Empty list.\n");
return;
}
while (head != NULL) {
printf("%c ", head->digit);
head = head->next;
}
printf("\n");
}
int main() {
const char* number1 = "123456789"; // 第一个非负整数
const char* number2 = "987654321"; // 第二个非负整数
Node* list1 = createLinkedList(number1); // 创建第一个链表
Node* list2 = createLinkedList(number2); // 创建第二个链表
printf("Number 1: ");
printLinkedList(list1);
printf("Number 2: ");
printLinkedList(list2);
return 0;
}
该代码首先定义了一个链表节点结构 Node
,包含一个字符类型的成员 digit
和指向下一个节点的指针 next
。
然后,通过函数 createLinkedList
来创建链表。它接受一个非负整数的字符形式作为参数,并逐个字符创建节点并连接起来,返回链表的头指针。
最后,在 main
函数中,我们定义了两个非负整数(以字符形式表示),并使用 createLinkedList
函数分别创建两个链表。随后调用 printLinkedList
函数打印这两个链表。
你可以根据自己的需要修改和扩展该代码,以适应具体的业务场景。
内容由零声教学AI助手提供,问题来源于学员提问