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

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:52:12
现有以下代码list.h
#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;
要求编写一个函数string_to_list(char s[]),将s中的每一个字符存放到该链表结构中.(不允许使用循环语句)

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

#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()