关于#数据结构#的问题,如何解决?c++

img

你题目的解答代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Link
{
    char elem;
    struct Link *next;
} link;
link *initLink();
void display(link *p);

int main()
{
    char s[100];
    printf("请输入字符串:");
    gets(s);
    link *h = initLink(s);
    printf("初始化链表为:\n");
    display(h);
    return 0;
}

link *initLink(char *s)
{
    link *p = (link *)malloc(sizeof(link)); //创建一个头结点
    link *temp = p;                         //声明一个指针指向头结点,用于遍历链表
    //生成链表
    for (int i; s[i] != '\0'; i++)
    {
        if (s[i] >= '0' && s[i] <= '9')
        {
            link *a = (link *)malloc(sizeof(link));
            a->elem = s[i];
            a->next = NULL;
            temp->next = a;
            temp = temp->next;
        }
    }
    return p;
}
void display(link *p)
{
    link *temp = p; //将temp指针重新指向头结点
    //只要temp指针指向的结点的next不是Null,就执行输出语句。
    while (temp->next)
    {
        temp = temp->next;
        printf("%c ", temp->elem);
    }
    printf("\n");
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img