要求编写一个函数string_to_list(char s[]),将s中的每一个字符存放到该链表结构中

发布网友 发布时间:2022-04-23 07:23

我来回答

1个回答

热心网友 时间:2023-10-07 10:55

完整的代码如下,已经过调试,希望对你有用。

#include <stdio.h>
#include <stdlib.h>
typedef char DATA;
struct linked_list
{
DATA d;
struct linked_list *next;
};
typedef struct linked_list ELEMENT;
typedef ELEMENT *LINK;

ELEMENT ehead = {0, 0};
LINK ltail = &ehead;

void string_to_list(char *p);
void print_list();
void free_list();

void main()
{
string_to_list("Hello world");
print_list();
free_list();
}

// 通过递归方法把字符串填入链表中,填入
// 过程中自动分配链表节点空间。
void string_to_list(char *p)
{
if (*p == '\0')
{
return;
}
else
{
ltail->next = (LINK)malloc(sizeof(ELEMENT));
ltail = ltail->next;
ltail->next = NULL;
ltail->d = *p;
string_to_list(p + 1);
}
}

//输出链表内容
void print_list()
{
ltail = ehead.next;
while(ltail)
{
printf("%c", ltail->d);
ltail = ltail->next;
}
}

//释放链表
void free_list()
{
LINK tmp;
ltail = ehead.next;
while(ltail)
{
tmp = ltail;
ltail = ltail->next;
free(tmp);
}
ehead.next = NULL;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com