输人一个字符串,用链表形式存储,每个结点存储一个字符,然后遍历链表,输出全部字符。用c语言完成
时间: 2024-05-11 14:17:23 浏览: 119
好的,以下是C语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表结构体
typedef struct ListNode {
char data; // 存储的字符
struct ListNode* next; // 指向下一个结点的指针
} ListNode;
int main() {
char str[100]; // 存储输入的字符串
ListNode* head = NULL; // 链表头结点
ListNode* tail = NULL; // 链表尾结点
// 读入字符串
printf("请输入字符串:");
scanf("%s", str);
// 遍历字符串,创建链表
for (int i = 0; str[i] != '\0'; i++) {
// 创建新结点
ListNode* node = (ListNode*)malloc(sizeof(ListNode));
node->data = str[i];
node->next = NULL;
// 如果链表为空,设置头结点和尾结点
if (head == NULL) {
head = node;
tail = node;
} else {
// 否则将结点添加到链表尾部
tail->next = node;
tail = node;
}
}
// 遍历链表
ListNode* p = head;
while (p != NULL) {
printf("%c", p->data);
p = p->next;
}
printf("\n");
// 释放链表的内存
p = head;
while (p != NULL) {
ListNode* q = p;
p = p->next;
free(q);
}
return 0;
}
```
输入一个字符串后,程序将遍历字符串,创建对应的链表,并输出链表中的字符。最后释放链表的内存。
阅读全文