zoukankan      html  css  js  c++  java
  • 2210: 链表排列(线性表)

    2210: 链表排列(线性表)

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 61  解决: 30
    [提交][状态][讨论版][命题人:外部导入]

    题目描述

    (线性表)已知不带头结点的线性链表list,链表中结点构造为(data、link),其中data为数据域,link为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新链接。要求链接过程中不得使用除该链表以外的任何链结点空间。

    输入

    m=5

    3 1 5 4 6

    输出

    1 3 4 5 6

    样例输入

    m=8
    
    10 1 5 14 32 55 67 6
    

    样例输出

    1 5 6 10 14 32 55 67 

    #include<stdio.h>
    #include<malloc.h>
    typedef struct node
    {
        int data;
        struct node *next;
    }list;
    int a[100];
    list *createList(int m, int a[])
    {
        int i;
        list *p, *r, *L;
        L = (list *)malloc(sizeof(list));
        r = L;
        for(i = 0; i < m; ++i)
        {
            p = (list *)malloc(sizeof(list));
            p->data = a[i];
            r->next = p;
            r = p;
        }
        r->next = NULL;  //问题的关键
        return L;
    }
    int main()
    {
        int m, i, temp;
        list *L, *p, *q;
        scanf("m=%d", &m);
        for(i = 0; i < m; ++i)
            scanf("%d", &a[i]);
        L = createList(m, a);
        for(p = L->next; p != NULL; p = p->next)
        {
            for(q = p->next; q != NULL; q = q->next)
            {
                if(p->data > q->data)
                {
                    temp = q->data;
                    q->data = p->data;
                    p->data = temp;
                }
            }
        }
        for(p = L->next; p != NULL; p = p->next)
            printf("%d ", p->data);
        printf("
    ");
        return 0;
    }
    

      

     
  • 相关阅读:
    redis常用方法
    分享朋友圈、qq等思路及代码
    redis 使用例子
    redis使用实例应用
    js对象与jquery对象介绍
    h5网页跳转到小程序
    redis队列思路介绍
    redis队列思路分析
    php原生方法连接mysql数据库
    mysql 原生语句limit 分页
  • 原文地址:https://www.cnblogs.com/mjn1/p/9921979.html
Copyright © 2011-2022 走看看