编写算法,创建一个以正序排列的单链表。(要求从键盘输入整数,0为结束标志)

4.编写算法,创建一个以正序排列的单链表。(要求从键盘输入整数,0为结束标志)
哪位知道怎么做

用while循环,先,新建一个结点 ,输入值,判定输入是否是0,如果不是就把该结点用直接插入排序算法插入链表,如果是,设置链表结束,并结束循环

供参考:

#include <stdio.h>
#include <stdlib.h>
typedef struct Lnode{
    int    data;
    struct Lnode* next;
}LNode;
LNode *create_LinkList()
{
    int   data ;
    LNode *head, *p, *q;
    head = p = (LNode *)malloc(sizeof(LNode));
    p->next = NULL; // 创建单链表的表头结点head
    while (1)
    {
        scanf("%d",&data);
        if (data == 0)  break ;
        q = (LNode *)malloc(sizeof(LNode));
        q->data = data; // 数据域赋值
        q->next = NULL;
        p->next = q;
        p=q ; // 新创建的结点总是作为最后一个结点
    }
    return (head);
}
void print(LNode* head)
{
    LNode* p = head;
    while(p->next){
        printf(p->next == head->next ? "%d" : "->%d",p->next->data);
        p = p->next;
    }
    printf("\n");
}
int main()
{
    LNode* head = NULL;
    head = create_LinkList();
    print(head);
    return 0;
}