用c语言将字符串abcdef用链表存储?

2025-10-26 10:14:3875 次浏览

最佳答案

#include

#include

// 定义链表节点结构体

typedef struct node {

char data;

struct node *next;

} Node;

int main() {

char str[] = "abcdef"; // 要存储的字符串

Node *head = NULL; // 链表头指针,初始化为 NULL

Node *tail = NULL; // 链表尾指针,初始化为 NULL

for (int i = 0; i < sizeof(str) - 1; i++) {

// 动态分配节点内存空间

Node *p = (Node *)malloc(sizeof(Node));

p->data = str[i]; // 存储字符数据

p->next = NULL;

if (head == NULL) {

head = p;

} else {

tail->next = p;

}

tail = p;

}

// 遍历链表并输出各节点数据

printf("链表存储的字符串为:");

for (Node *p = head; p != NULL; p = p->next) {

printf("%c", p->data);

}

printf("\n");

// 释放链表节点的内存空间

Node *p = head;

while (p != NULL) {

Node *q = p->next;

free(p);

p = q;

}

return 0;

}

此代码利用循环遍历字符串中的每个字符,并为每个字符动态分配一个链表节点,将其连接成一个链表。然后,使用循环遍历链表并输出各节点数据。最后,释放所有动态分配的链表节点内存空间,以避免内存泄漏。

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。