用链表将0到9串起来c语言写出代码
时间: 2024-09-24 15:03:26 浏览: 32
在C语言中,你可以使用结构体和指针来创建一个链表,每个节点代表数字,并将它们串联起来形成从0到9的序列。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
typedef struct Node {
int digit;
struct Node* next;
} Node;
// 初始化链表头节点
Node* createList() {
Node* head = (Node*)malloc(sizeof(Node));
if (!head) {
printf("Memory allocation failed.\n");
return NULL;
}
head->digit = 0;
head->next = NULL;
return head;
}
// 动态添加下一个节点并连接到链表尾部
void appendToTail(Node** head, int digit) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (!newNode) {
printf("Memory allocation failed.\n");
return;
}
newNode->digit = digit;
newNode->next = NULL;
// 如果链表为空或只有一个节点,直接连接新节点
if (*head == NULL || (*head)->next == NULL) {
*head = newNode;
return;
}
// 否则遍历到最后一个节点并添加新节点
Node* current = *head;
while (current->next != NULL) {
current = current->next;
}
current->next = newNode;
}
int main() {
Node* listHead = createList();
for (int i = 1; i <= 9; i++) {
appendToTail(&listHead, i);
}
// 打印链表内容
Node* temp = listHead;
while (temp != NULL) {
printf("%d", temp->digit);
temp = temp->next;
if (temp != NULL) {
printf("-");
}
}
free(listHead); // 别忘了释放内存
return 0;
}
```
这个程序会创建一个链表,从0开始,每增加一次循环就添加一个新节点代表递增的数字,直到达到9。
阅读全文