求下面问题的完整代码。

【问题描述】输入一个整数序列(整数大于0),以顺序表作为其存储结构,然后根据顺序表中的数据构建一个单链表,并保证单链表中的数据以非递减的方式排列,并输出单链表中的数据。(注意:在构建单链表的过程中,可以修改或者删除顺序表中的数据)
【输入形式】整数序列,以空格作为分隔,序列最多包含10个整数
【输出形式】整数序列,以空格作为分隔
【样例输入】9 10 2 1
【样例输出】1 2 9 10


num_str = str(input('输入字符串,字符串之间用逗号隔开:\n'))
num_list = num_str.split(',', -1)
num_list = set(num_list) #根据set函数特性去重
num_int_list = list(map(int, num_list))
print('去重后', num_int_list)
num_int_list.sort() #排序函数调用
print('排序后', num_int_list)
length = len(num_int_list)
n = 0
result = []  #结果放入到result列表中
while n < length-1:
    if num_int_list[n] == num_int_list[n+1] - 1:
        #star记录连续数字的开始下标
        star = n
        nums = num_int_list[star]
        while (n+1<length and num_int_list[n] == num_int_list[n+1]-1):
            n += 1
        # end记录连续数字的末尾
        end = n
        #数字的末尾存入到nume
        nume = num_int_list[end]
        #将符合条件的连续数字的两段数字存入result
        result.append(nums)
        result.append(nume)
        n += 1
    else:
        #将其余间断的数字直接存入result
        gap = num_int_list[n]
        result.append(gap)
        n += 1
#判断n是否是最后一位数字,是则打印
if n == length-1:
    last = num_int_list[n]
    result.append(last)
print('最终结果', result)

又来啦,前面还有几个问题解决了吗?
你这还要定义一个顺序表结构?再定义一个链表结构?

#include <stdio.h>
#define MAXSIZE 10
typedef struct _sqlist
{
    int data[MAXSIZE];
    int len;
}sqlist;

typedef struct _node
{
    int data;
    struct _node *next;
}node;

void input(sqlist *sq)
{
    int n;
    do
    {
        scanf("%d",&n);
        sq->data[sq->len++] = n;
    }
    while(getchar() !='\n');
}

void createlist(node *head,sqlist *sq)
{
    node *p = head;
    for(int i=0;i<sq->len;i++)
    {
        node *q = (node*)malloc(sizeof(node));
        q->data = sq->data[i];
        q->next = NULL;
        p = head;
        while(p->next != NULL)
        {
            if(p->next->data >= q->data)
            {
                q->next = p->next;
                p->next = q;
                break;
            }
            p = p->next;
        }
        if(p->next == NULL)
            p->next = q;
    }
}

void printlist(node *head)
{
    node *p = head->next;
    while(p != NULL)
    {
        printf("%d ",p->data);
        p = p->next;
    }
}

int main()
{
    sqlist sq;
    sq.len = 0;
    input(&sq);
    node head;
    head.next = NULL;
    createlist(&head,&sq);
    printlist(&head);

    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632